Javascript的onchange选择不起作用

Javascript onchange select not working

本文关键字:不起作用 选择 onchange Javascript      更新时间:2023-09-26

我试图在选择元素上使用javascript创建一个onchange事件。但它不工作,任何提示我做错了什么?

脚本. .

<script type="text/javascript">
function check() {
   alert("Hi");
}
</script>

HTML . .

<body> 
<select name="selTitle" id="titles" onchange="check();">
<option value="Mr.">Mr.</option>
<option value="Ms.">Ms.</option>
</select>
</body>

Demo - http://jsfiddle.net/jq9UA/1/

在Fiddle的问题是,JavaScript代码正在运行响应窗口加载事件(默认为Fiddle)。运行的任何代码都是在加载回调的上下文中定义的,而不是在全局作用域中定义的。如果您仔细查看为框架生成的实际HTML,您会发现它看起来像这样

$(window).load(function(){
    function check() {
     alert("Hi");
  }
});

这意味着你的代码定义了一个check函数,它是本地的加载回调,但事件处理程序想要调用全局定义的check函数。

要解决这个问题,您需要使用一个在全局上下文中定义JavaScript的fiddle设置。试试"不包(头)"。

小提琴:http://jsfiddle.net/jq9UA/3/

我已经测试过了,效果非常好:

<script name="text/javascript">
    function check() {
      alert("Hi");
    }
</script>    
<body>
<select name="selTitle" id="titles" onchange="check();">
<option value="Mr." value="1">Mr.</option>
<option value="Ms." value="2">Ms.</option>
</select>
</body>