Jquery Javascript复选框选择/取消选择

时间:2011-10-12 03:56:02

标签: javascript jquery

我有一个HTML表单,里面有一堆复选框。

我想要做的就是这个。 - 如果选中任何一个复选框,我想在javascript中设置一个变量。 - 如果未选择任何内容,我想将该变量设置为空白。 - 我也在切换复选框的类。

这就是我目前正在做的事情。

var checklist = "";
$('.form3 :checkbox').change(function() {           
    $(this).closest('label').toggleClass("checkselected", this.checked);
    if(window.checklist != "OL" )
    {
        window.checklist = "OL";
    }

});

这段代码的问题是,如果一旦设置了变量,我不知道如何清除它是用户取消选中所有复选框,并且不再选择任何一个框。

有什么建议吗? (我正在使用jQuery)

3 个答案:

答案 0 :(得分:2)

您可能想检查所选复选框的数量..这样,您就不会有问题。 (好吧,如果“OL”没有任何意义......)

var checklist = "";
var checkboxes = $('.form3 :checkbox');
checkboxes.change(function() {           
    $(this).closest('label').toggleClass("checkselected", this.checked);
    checklist = checkboxes.filter(':checked').length;
    // checklist would then be 0 if none selected.
});

答案 1 :(得分:0)

要选中所有复选框,您可以使用

$('.form3 :checkbox").attr("checked", true);

取消选择

$('.form3 :checkbox").attr("checked", false); 

答案 2 :(得分:0)

以下代码是您所需要的:

<html>
<body>
  <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
  <style>
  .checkselected { color: red; }
  </style>
  <div class="form3">
    <label><input type="checkbox" />Option 1</label>
    <label><input type="checkbox" />Option 2</label>
    <label><input type="checkbox" />Option 3</label>
  </div>
  <script>
var checklist = "";
$('.form3 :checkbox').change(function() {           
    $(this).closest('label').toggleClass("checkselected", this.checked);
    if(window.checklist != "OL" )
    {
        window.checklist = "OL";
    }
    var size = $('.form3 :checkbox').length;
    var found = false;
    $('.form3 :checkbox').each(function(index) {
      if (this.checked) {
        found = true;
      }
      if (index == size - 1) {
        if (!found) {
          checklist = '';
        }
      }
    });
    alert(checklist);
});
  </script>
</body>
</html>