我有一块JavaScript应该检查或联合国检查所有我的复选框(命名相同)..工作正常时,有超过如果只有一个复选框存在,则一个复选框不起作用。 (我意识到在单个选项屏幕上单击'全部选中'之间的实际区别是相同的,有人可能会争辩说'全部选中'应该甚至不会出现在屏幕上,只有一个选项 - 但客户端坚持一致屏幕...所以请不要把我失望,我已经指出的路线)javascript - 'checkAll'怪异的行为,当只有一个复选框
脚本:
// check uncheck all check boxes
var checkAll = function(checkname, exby) {
alert(checkname.length); // undefined when there is only one check box
for (i = 0; i < checkname.length; i++) {
checkname[i].checked = exby.checked ? true : false;
}
}
注 - 我添加了一个警报,以检查长度,它是不确定的当只有一个复选框时,其他时间是否准确?
不工作的HTML ...
<form method="post" name="createInvoice" >
Check/Uncheck All <input name="chkAll" onclick="checkAll(document.createInvoice.PO, this);" type="checkbox" >
<input name="PO" value="7835" class="chkbox" type="checkbox" >
</form>
,它的HTML ...
<form method="post" name="createInvoice" >
Check/Uncheck All <input name="chkAll" onclick="checkAll(document.createInvoice.PO, this);" type="checkbox" >
<input name="PO" value="13506" class="chkbox" type="checkbox" >
<input name="PO" value="14046" class="chkbox" type="checkbox" >
</form>
无耻的自我推广(如果您已经使用,或不介意介绍,jQuery的):http://mjball.github.io/ jQuery-CheckAll/ – 2013-05-06 20:11:28
你的复选框不应该有不同的名字吗? – j08691 2013-05-06 20:11:58
@ j08691尽管**通常是一个不错的主意,可以将名称分开,但他的复选框可用作多选,因此名称相同也是有意义的。尽管如此,你仍然不能有重复的ID。 – 2013-05-06 20:19:15