我正在尝试使“全部选择”和“全部删除”按钮在我的表单中工作,但我遇到了很多麻烦。事实上,如果我将“[]”(数组)删除到复选框的name属性,那javascript代码完全有效。但是我需要这些复选框是多选的,这样代码就不起作用了。
我在这里留下与复选框相关的HTML和JS代码,但我建议你检查这个JS小提琴,这样你就可以更加图形化地检查它:
https://jsfiddle.net/28dsnmxs/
HTML代码:
<input type="checkbox" name="h[]" value="1" id="g"> SMS
<br/>
<input type="checkbox" name="h[]" value="2" id="g"> E-mail
<br/>
<input type="checkbox" name="h[]" value="3" id="g"> Phone
<br/>
<input type="button" id="prueba" name="sub" value="Check all" onclick="checkall(document.formulario.h)">
<input type="button" name="sub" value="Uncheck all" onclick="uncheckall(document.formulario.h)">
JS代码:
function checkall(chk) {
var i;
for (i = 0; i < chk.length; i++) {
chk[i].checked = true;
}
}
function uncheckall(chk) {
var i;
for (i = 0; i < chk.length; i++) {
chk[i].checked = false;
}
}
我怎样才能让它发挥作用?避免使用jQuery的想法是首选,但如果没有其他方法则没有问题。谢谢!
答案 0 :(得分:1)
要访问非有效
TemplateReport
的对象的密钥,请使用bracket-notation
使用JavaScript Identifier
选择所有document.formulario['h[]']
元素
name = "h[]"
&#13;
function checkall(chk) {
var i;
for (i = 0; i < chk.length; i++) {
chk[i].checked = true;
}
}
function uncheckall(chk) {
var i;
for (i = 0; i < chk.length; i++) {
chk[i].checked = false;
}
}
&#13;