选中未选中的所有复选框

时间:2015-10-17 21:39:26

标签: jquery checkbox

我有一列动态创建的复选框。我在顶部有一个复选框。我需要检查所有复选框除了已经检查过的复选框。

<input type="checkbox" class="checkAll" />
<input name=""rowBox type="checkbox" class="row checkbox" value="1" checked />
<input name=""rowBox type="checkbox" class="row checkbox" />
<input name=""rowBox type="checkbox" class="row checkbox" />

$('input.checkAll' ).on('click', function(){


$('input[name="name=""rowBox"]' ).prop('checked', this.checked)
  })

这可以检查所有复选框,但它取消选中最初在页面加载时检查的复选框。

1 个答案:

答案 0 :(得分:1)

要归档您的问题,我使用了<button>,通常我有一个标记复选框的数组。 &#34; 1&#34;用于检查和&#34; 0&#34;未经检查。接下来我证明哪个是&#34; 1&#34;并且.prop()我再次检查了它。

<强> HTML

<input type="checkbox" class="checkAll" />
<input name="rowBox" type="checkbox" class="row checkbox" value="ch0" checked />
<input name="rowBox" type="checkbox" value="ch1" class="row checkbox"/>
<input name="rowBox" type="checkbox" value="ch2" class="row checkbox" checked/>
<button id="revert">revert</button>

<强>的jQuery

$(document).ready(function(){ 
var sList = "";
$(".checkAll").change(function(){
    $('input[name=rowBox]').each(function () {
        var sThisVal = (this.checked ? "1" : "0");
        sList += (sList=="" ? sThisVal : sThisVal);
    });

    $('input[name="rowBox"]').prop('checked', $(this).prop("checked"));      
});

$("#revert").click(function(){
    for(var i =0; i < sList.replace(",", "").length; i++){ 
      if(sList[i]=="1"){  
        $('input[value="ch'+i+'"]').prop("checked", true)
      }
      else{
        $('input[value="ch'+i+'"]').prop("checked", false)
      }
    }
  });
});

<强>更新

jsfiddle

上查看