我正在尝试使用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>
答案 0 :(得分:6)
Fiddle中的问题是JavaScript代码正在运行以响应窗口加载事件(默认情况下为小提琴)。您运行的任何代码都是在加载回调的上下文中定义的,而不是在全局范围内定义的。如果您查看框架的实际生成的HTML,您会发现它看起来像这样
$(window).load(function(){
function check() {
alert("Hi");
}
});
这意味着您的代码定义了一个check
函数,它是加载回调的本地函数,但事件处理程序想要调用全局定义的check
函数。
要解决此问题,您需要使用一个在全局上下文中定义JavaScript的小提琴设置。试试“没有包裹(头)”。
答案 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>