请参阅下面的JavaScript:
<html>
<head><title></title></head>
<body>
<script type = "text/javascript">
function Test()
{
alert('got here');
}
function SelectAll() {
var frm = document.forms[0];
for (i = 0; i < frm.elements.length; i++) {
frm.elements[i].checked=true;
}
}
</script>
<form>
<input type="checkbox" name="Test1" onClick="Test()"/>
<input type="checkbox" name="Test2" onClick="Test()"/>
<input type="checkbox" name="Test3" onClick="Test()"/>
<input type="checkbox" name="Test4" onClick="SelectAll()"/>
</form>
</body>
</html>
如果单击以下任一项,则会出现警告框:Test1,Test2或Test3。当我单击Test4时,我希望警报出现三次(一次用于Test1;一次用于Test2,一次用于Test3)。但是,这不会发生。根本不调用事件处理程序。这是为什么?
如何修改HTML以便调用事件处理程序三次。
答案 0 :(得分:0)
您还需要触发onclick
:
frm.elements[i].onclick();
要避免点击最后一个元素,您需要通过1
减少for循环中的长度,因此最终代码应为:
function SelectAll() {
var frm = document.forms[0];
for (i = 0; i < ( frm.elements.length - 1 ); i++) {
frm.elements[i].checked=true;
frm.elements[i].onclick();
}
}