表单:“全选”按钮,带有多选复选框

时间:2016-10-05 17:02:32

标签: javascript html

我正在尝试使“全部选择”和“全部删除”按钮在我的表单中工作,但我遇到了很多麻烦。事实上,如果我将“[]”(数组)删除到复选框的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的想法是首选,但如果没有其他方法则没有问题。谢谢!

1 个答案:

答案 0 :(得分:1)

  

要访问非有效TemplateReport的对象的密钥,请使用bracket-notation

使用JavaScript Identifier选择所有document.formulario['h[]']元素

&#13;
&#13;
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;
&#13;
&#13;