[英]Javascript -Check all Checkboxes problem
我正在使用javascript:
<SCRIPT LANGUAGE="JavaScript">
function Check(chk)
{
if(document.myform.CheckAll.value=="Check All"){
for (i = 0; i < chk.length; i++)
chk[i].checked = true ;
document.myform.CheckAll.value="Uncheck All";
} else {
for (i = 0; i < chk.length; i++)
chk[i].checked = false ;
document.myform.CheckAll.value="Check All";
}
}
</script>
在html代码上:
<form name="myform" method="post" action="">
<input type="checkbox" name="check_list[]" value="<? echo $row['Report ID'] ?>">
<input type="checkbox" name="check_list[]" value="<? echo $row['Report ID'] ?>">
...*More Checkboxes*...
<input style="font-family: sans-serif; font-weight:bold; font-size:12px; border: 1px #000000 solid;" type="button" id="CheckAll" name="CheckAll" value="Check All"
onClick="Check(document.myform.check_list[])">
但这似乎不起作用...
它确实可以正常工作,但是那是在我使用名称之前:“ check_list []”(“ []”位)-是否会导致javascript问题? 如果是这样,我该如何制止它? -或者如何获取JavaScript来检查所有复选框? :)
非常感谢你。
检查一下(已删除代码重复+改进)
js:
function Check(frm){
var checkBoxes = frm.elements['check_list[]'];
for (i = 0; i < checkBoxes.length; i++){
checkBoxes[i].checked = (frm.CheckAll.value == "Check All") ? 'checked' : '';
}
frm.CheckAll.value = (frm.CheckAll.value == "Check All") ? "Uncheck All" : 'Check All';
}
标记:
<form name="myform" method="post" action="">
<input type="checkbox" name="check_list[]" value="<? echo $row['Report ID'] ?>">
<input type="checkbox" name="check_list[]" value="<? echo $row['Report ID'] ?>">
<input style="font-family: sans-serif; font-weight:bold; font-size:12px; border: 1px #000000 solid;" type="button" id="CheckAll" name="CheckAll" value="Check All"
onClick="Check(document.myform)">
javascript中的[[]]字符保留用于标识数组。 即,您不能使用document.myform.check_list []在DOM中引用它们。 这将引用名为“ check_list”的元素数组。
您可以做的是改为从表单的元素数组中检索复选框。 只需像这样更改onclick:
onclick="Check(document.myform['check_list[]'])"
注意:建议您学习jQuery之类的JavaScript框架。 它使做这种事情变得非常容易,并且您可以编写简洁的JavaScript。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.