选中所有复选框后发出警报

时间:2011-10-03 12:29:21

标签: jquery

我到处寻找(但也许我错过了什么)

我目前正在创建一个人们有3种选择的网站。

让我们轻松一点,1,2和3。

现在,客户想要一种技术,在您点击第三个复选框后(无论以哪种方式,您可以从1到3然后是2,或3,1再然后2)都会出现一个警告弹出窗口。

现在我到处都看,但我找不到它。 希望有人可以帮助我。

Thanx已经。

3 个答案:

答案 0 :(得分:7)

这应该有效,我想:

$('input:checkbox').change(
    function(){
        if ($('input:checkbox:checked').length == $('input:checkbox').length){
            alert('All checkboxes are checked!');
        }
    });

JS Fiddle demo


已编辑以回应mblase75的(准确)评论(下方):

  

当然,如果页面上有任何其他复选框,这将无效,但可以通过向正在监控的三个复选框添加一个类并轻松选择它来​​轻松解决。

上述内容可以很容易地适用于单个元素的子元素,无论页面上有多少元素:

$('input:checkbox').change(

function() {
    var $formElement = $(this).closest('form');
    if($formElement.find('input:checkbox:checked').length == $formElement.find('input:checkbox').length) {
        alert('All checkboxes are checked!');
    }
});

JS Fiddle demo

修改$formElement = $(this).closest('form');变量分配以选择其他元素divfieldset或者任何其他元素,只允许您定位该给定元素中的复选框。

参考文献:

答案 1 :(得分:0)

$("#cb1,#cb2,#cb3").change(function() {
    if ($("#cb1").prop("checked") && $("#cb2").prop("checked") && $("#cb3").prop("checked")) {
        alert("all three checked");
    };
});

答案 2 :(得分:0)

你可以做到

$('.yourchexkoboxes').click(function(){
   var $chkboxs = $('.yourchexkoboxes').length;
   var $CheckedChkboxs = $('.yourchexkoboxes:checked').length;
   if($chkboxs  === $CheckedChkboxs){
        //all checkobexes have been checked
   }
});