使用Javascript和AJAX勾选所有复选框


if (this.checked != true) {
this.checked = true;
}    
else {
this.checked = false;
}

上述代码启用Check up AllCheck out All功能。然而,我发现,如果用户反向选中任何一个复选框,则每个输出都会反向。

单击button时,我应该如何更改才能获得以下内容?

  1. 勾选所有框(Acheive(
  2. 选中任何未选中的框(问题(
  3. 勾选all框时,勾选每个框(Acheive(

Belows是完整的代码:

function display() {
$.ajax({
url: "test.php",
type: "get",
data: {
a: $('#selectest option:selected').val()
}
}).done(function(data) {
$('#result').text(data);
alert("Checking test");
$('input:checkbox[class='+data+']').each(function() {
if(this.checked != true){
this.checked = true;
}
else{
this.checked = false;
}
});
});
}

用户名Undefined是否真的可用,或者您是否在矩阵中发现了故障?

你的问题与你的代码相矛盾。这个答案是给你的问题的。您的代码似乎是通过ajax调用设置复选框状态,这是完全不同的。

由于您使用的是jQuery,因此可以使用:checked选择器。然后,您可以检查选中复选框的数量是否等于复选框的总数,并相应地切换.prop('checked')

在此代码段中,如果选中了所有复选框,则将取消选中所有复选框(项目3(。如果未选中所有复选框,则将选中所有复选复选框(项目1和2(。

$('button').on('click', function() {
$('input[type="checkbox"]').prop('checked',
$('input[type="checkbox"]:checked').length !==
$('input[type="checkbox"]').length
);
});
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<button>toggle</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

最新更新