Dalam pembangunan program kami, kami sering menggunakan Kotak Semak untuk memilih semua, biasanya dalam beberapa kawalan terikat data seperti Gridview, dll.
Yang berikut mengambil Repeater sebagai contoh dan meletakkan kawalan Kotak Semak dalam pengepala dan item Repeater.
<asp:Repeater ID="rptGroup" runat="server"> <HeaderTemplate> <table width="100%" cellspacing="1" > <tr> <td width="3%" align="center" > <input type="checkbox" id="chkAll" name="chkAll" value="checkbox" onclick="checkAll ('chkAll',this);" /> </td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td align="center" > <input type="checkbox" name="chkSelect" value='<%# Eval("ID") %>' onclick="checkAll('chkAll',this);"/> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater>
Berikut ialah skrip js
Kaedah checkAll melaksanakan semua pemilihan dan nyahpilihan Kotak Semak.
function checkAll(chkAllID, thisObj) { var chkAll = document.getElementById(chkAllID); var chks = document.getElementsByTagName("input"); var chkNo = 0; var selectNo = 0; for (var i = 0; i < chks.length; i++) { if (chks[i].type == "checkbox") { //全选触发事件 if (chkAll == thisObj) { chks[i].checked = thisObj.checked; } //非全选触发 else { if (chks[i].checked && chks[i].id != chkAllID) selectNo++; } if (chks[i].id != chkAllID) { chkNo++; } } } if (chkAll != thisObj) { chkAll.checked = chkNo == selectNo; } }
Fungsi checkSelectNo digunakan untuk mendapatkan bilangan kotak pilihan Ini sangat berguna apabila digunakan untuk menentukan sama ada terdapat kotak pilihan.
function checkSelectNo(chkAllID) { var chks = document.getElementsByTagName("input"); var selectNo = 0; for (var i = 0; i < chks.length; i++) { if (chks[i].type == "checkbox") { if (chks[i].id != chkAllID && chks[i].checked) { selectNo++; } } } return selectNo; }
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.