【问题标题】:check all checkboxes that are not checked选中所有未选中的复选框
【发布时间】:2015-10-17 21:39:25
【问题描述】:

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

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

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

【问题讨论】:

  • 如果您希望它们都被选中,为什么要过滤掉选中的复选框?此外,您的 HTML 格式不正确,“rowBox”自行浮动。
  • 抱歉,rowBox 上的错字。 Tha 是每个复选框的名称。我不希望那些已经被选中的,随着点击事件而改变。
  • @jsNovice 这就是他要问的。为什么要忽略它??有什么费用吗??
  • 如果我加载带有 10 个复选框的页面。其中5个负载已经检查。其他五个我现在要更改为选中。如果我检查检查所有按钮,他们都会被检查好。当我犯了一个错误并且不希望所有这些都被检查时会发生什么。我再次单击全部选中,它们都未选中,对吗?
  • 是的;这是选中/取消选中所有按钮/复选框的预期行为。

标签: jquery checkbox


【解决方案1】:

为了归档您的问题,我使用了&lt;button&gt;,通常我有一个标记复选框的数组。 “1”表示选中,“0”表示未选中。接下来我证明哪个是“1”并用.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

【讨论】:

  • 是的,这是我目前拥有的功能。同样,如果一个或多个复选框已被选中,我不想更改它们的状态。
  • 好的,我还记录了你没有在双引号中写输入字段的名称。
  • 马里奥,是的,这是一个错字。我认为我有正确的 html。
  • @jsNovice 希望对你有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
  • 2017-05-05
  • 1970-01-01
相关资源
最近更新 更多