如果存在多个复选框,则单个按钮上的Checkall和uncheckall可以工作。但是单个复选框不起作用。请给我解决方案,如果单个复选框存在或javascript中存在多个复选框,将同时适用于两者。
这是我的代码
<input type="button" class="btn btn-theme02 btn-xs " id="checkbtn" name="checkbtn" value="CheckAll" onClick="Check(document.myform.checklist1)"/>
<input type="checkbox" style="width: 20px" class="checkbox form-control centered" id="checklist1" name="checklist1" value="<%=voucher.getId()%>"/>
<script>
function Check(chk)
{
if(document.myform.checkbtn.value=="CheckAll"){
for (i = 0; i < chk.length; i++)
chk[i].checked = true ;
document.myform.checkbtn.value="UnCheckAll";
}else{
for (i = 0; i < chk.length; i++)
chk[i].checked = false ;
document.myform.checkbtn.value="CheckAll";
}
}
</script>
答案 0 :(得分:0)
我已经更改了代码并为同一个创建了一个jsfiddle示例... 这是代码: -
function Check() {
var checkBoxes = document.getElementsByName("checklist1");
var button = document.getElementsByName("checkbtn")[0];
if (button.value == "CheckAll") {
for (i = 0; i < checkBoxes.length; i++)
checkBoxes[i].checked = true;
button.value = "UnCheckAll";
} else {
for (i = 0; i < checkBoxes.length; i++)
checkBoxes[i].checked = false;
button.value = "CheckAll";
}
}
工作示例: - http://jsfiddle.net/c2S5d/19/
答案 1 :(得分:0)
尝试这样:
function Check()
{
var chk=document.getElementsByName("checklist1");
if(document.getElementById("checkbtn").value=="CheckAll"){
for (i = 0; i < chk.length; i++)
chk[i].checked = true ;
document.getElementById("checkbtn").value="UnCheckAll";
}else{
for (i = 0; i < chk.length; i++)
chk[i].checked = false ;
document.getElementById("checkbtn").value="CheckAll";
}
}
<input type="button" class="btn btn-theme02 btn-xs " id="checkbtn" name="checkbtn" value="CheckAll" onClick="Check()"/>
<input type="checkbox" style="width: 20px" class="checkbox form-control centered" id="checklist1" name="checklist1" value="<%=voucher.getId()%>"/>