有人能告诉我为什么这不起作用吗?
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = initPage;
function initPage() {
document.getElementById("member_type_academic_4").onChange=alert("It's Working");
}
</script>
</head>
<body>
<form>
<label for="member_type_academic_4">test</label>
<select name="member_type_academic_4" id="member_type_academic_4">
<option value="0" selected>Select One</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</select>
</form>
</body>
</html>
窗口加载时会触发警告框,但是当选择框发生变化时则不会触发。我知道这很简单,我不知道。谢谢!
答案 0 :(得分:3)
这是因为为onchange事件处理程序分配了对alert的方法调用的返回值。这最终是未定义的,但是,调用alert会将消息发送到屏幕。相反,您应该使用一个函数来分配给事件处理程序
function initPage() {
document.getElementById("member_type_academic_4").onchange = function(){
alert("It's Working");
};
}
答案 1 :(得分:0)
首先:&#34; onChange&#34; - &GT; &#34;平变化&#34;
接下来,将alert函数包装在一个包装器中,否则只要在代码中遇到它就会立即执行。
document.getElementById("member_type_academic_4").onchange=function(){alert("It's Working")};
答案 2 :(得分:0)
为什么不在select元素实际发生变化时执行该函数?
<select name="member_type_academic_4" onchange="initPage()"
id="member_type_academic_4">
<option value="0" selected>Select One</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</select>
然后将功能更改为:
function initPage() {
alert("It's Working");
}