我有一塊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