2011-10-12 117 views
0

我有一个HTML表单,里面有一堆复选框。Jquery Javascript复选框选择/取消选择

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

这就是我目前的做法。

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

}); 

这段代码的问题是,如果一旦变量设置,我不知道如何清除它是用户取消选择所有的复选框,并没有框被选中的任何更长的时间。

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

回答

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. 
}); 
+0

这工作很好......谢谢。 – ssdesign

0

要选择所有复选框可以使用

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

要取消

$('.form3 :checkbox").attr("checked", false); 
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>