【问题标题】:Check up all Checkbox using Javascript and AJAX使用 Javascript 和 AJAX 检查所有复选框
【发布时间】:2022-01-20 09:07:12
【问题描述】:
if (this.checked != true) {
  this.checked = true;
}    
else {
  this.checked = false;
}

以上代码启用Check up AllCheck out All 功能。但是,我发现如果任何一个复选框被用户反向选中,每个输出都会反转。

button被点击时,我应该如何改变以获得关注?

  1. 检查所有框(完成)
  2. 选中任何未选中的框(问题)
  3. 选中all 框时检查每个框(实现)

以下是完整代码:

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;
                        }
                    });
                  });
                }

【问题讨论】:

  • 您似乎想使用 SINGLE 按钮来检查全部和取消全部检查。但是如果用户已经选中了“一半”的复选框,会发生什么? - 所以我能想到的解决方案就是简单地使用两个单独的按钮,一个是“Check-all”,另一个是“Uncheck all”。
  • @KenLee 这正是问题所在。将这些功能实现到单个按钮中是不可能的吗?
  • 其实是可以的:(1)先检查有多少个checkbox已经被“选中”,(2)如果选中的checkbox的数量是MORE或者EQUAL等于未选中的checkbox的数量,那么就取消选中所有的复选框,否则检查所有的复选框

标签: javascript php html jquery ajax


【解决方案1】:

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

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

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

在这个 sn-p 中,如果所有的复选框都被选中,那么所有的复选框都将被取消选中(第 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 2020-03-29
    • 2010-12-05
    相关资源
    最近更新 更多