我有一列动态创建的复选框。我在顶部有一个复选框。我需要检查所有复选框除了已经检查过的复选框。
<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)
})
这可以检查所有复选框,但它取消选中最初在页面加载时检查的复选框。
答案 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)
}
}
});
});
<强>更新强>
上查看