我有以下HTML:
<form name="smform" id="smform" method="post" action="">
<input type="checkbox" name="Check_All" onClick="Check(document.smform.check)" >
<input type="checkbox" name="check" value="blue_color"> Blue<br>
<input type="checkbox" name="check" value="green_color"> Green<br>
<input type="checkbox" name="check" value="orange_color"> Orange<br>
</form>
使用这个JS:
function Check(chk)
{
if(document.smform.Check_All.checked){
for (i = 0; i < chk.length; i++)
chk[i].checked = true ;
document.smform.Check_All.checked = true;
}else{
for (i = 0; i < chk.length; i++)
chk[i].checked = false ;
document.smform.Check_All.checked = false;
}
}
这个工作正常,我可以选择或取消选中所有复选框,但是为了将其作为ARRAY发布,我的复选框将显示为name="check[]"
:
<input type="checkbox" name="check[]" value="blue_color"> Blue<br>
<input type="checkbox" name="check[]" value="green_color"> Green<br>
<input type="checkbox" name="check[]" value="orange_color"> Orange<br>
但在这种情况下,我的JS无法正常工作。我如何调整这个JS,以便与name="check[]"
一起使用?
感谢所有帮助。
答案 0 :(得分:5)
答案 1 :(得分:2)
您可以使用getElementsByTagName
获取所有复选框
var inputs = document.getElementsByTagName("input");
Check(inputs);
function Check(chk)
{
if(document.smform.Check_All.checked){
for (i = 0; i < chk.length; i++){
if(inputs[i].type == "checkbox"){
chk[i].checked = true ;
}
}
document.smform.Check_All.checked = true;
}else{
for (i = 0; i < chk.length; i++){
if(inputs[i].type == "checkbox"){
chk[i].checked = false ;
}
}
document.smform.Check_All.checked = false;
}
}
答案 2 :(得分:-3)
使用Jquery。您可以为要检查的所有复选框添加一个类
<input type='checkbox' class='autocheckable someOtherClass' />Blue
然后按照此处的说明进行操作:Setting "checked" for a checkbox with jQuery?