Javascript onchange选择不起作用

时间:2011-10-28 18:01:08

标签: javascript html

我正在尝试使用select元素上的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>

演示 - http://jsfiddle.net/jq9UA/1/

2 个答案:

答案 0 :(得分:6)

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

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

});

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

要解决此问题,您需要使用一个在全局上下文中定义JavaScript的小提琴设置。试试“没有包裹(头)”。

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

答案 1 :(得分:0)

我已经对此进行了测试,效果非常好:

<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>