[英]Javascript -Check all Checkboxes problem
I'm using the javascript: 我正在使用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>
On the html code: 在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[])">
But it doesn't seem to be working... 但这似乎不起作用...
It did work at some point, but that was before I used the name: "check_list[]" (the '[]' bit) -Does that cause a problem with the javascript? 它确实可以正常工作,但是那是在我使用名称之前:“ check_list []”(“ []”位)-是否会导致javascript问题? And if so how can I stop it?
如果是这样,我该如何制止它? -Or how can I get the javascript to check all checkboxes?
-或者如何获取JavaScript来检查所有复选框? :)
:)
Thank you very much. 非常感谢你。
Check this out (code duplication removed + improvements) 检查一下(已删除代码重复+改进)
js: 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';
}
markup: 标记:
<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)">
example: http://jsfiddle.net/steweb/XL6uh/ 示例: http : //jsfiddle.net/steweb/XL6uh/
The "[ ]" characters a reserved in javascript to identify arrays. javascript中的[[]]字符保留用于标识数组。 ie you can't reference them in the DOM using document.myform.check_list[].
即,您不能使用document.myform.check_list []在DOM中引用它们。 This would refer to an array of elements named 'check_list'.
这将引用名为“ check_list”的元素数组。
What you can do is retrieve the checkboxes from the form's element array instead. 您可以做的是改为从表单的元素数组中检索复选框。 Just change your onclick like so:
只需像这样更改onclick:
onclick="Check(document.myform['check_list[]'])"
NB: I would recommend you learn a javascript framework such as jQuery. 注意:建议您学习jQuery之类的JavaScript框架。 It makes doing this type of thing so much easier and you can write unobtrusive javascript.
它使做这种事情变得非常容易,并且您可以编写简洁的JavaScript。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.