如果选中所有复选框,则执行此操作,否则执行此操作(jQuery)

时间:2013-12-06 19:16:29

标签: javascript jquery checkbox

我正在尝试做以下事情:

  • 只有选中所有复选框
  • ,用户才能继续下一步
  • 在其他情况下,如果用户点击按钮,则应该弹出警告消息,例如

如果没有选中复选框,我无法弄清楚第二部分。这是我的代码:

$("input[type='checkbox'].checkbox").change(function(){
    var a = $("input[type='checkbox'].checkbox");
    if (a.length == a.filter(":checked").length){
        $('.button').on('click',function(){
            // do something, no issue here
        });
    } else {
        // do something else, can't figure this out
    }
});

4 个答案:

答案 0 :(得分:3)

HTML:

<input type='checkbox' id="1" />
<br />
<input type='checkbox' id="2" />
<br />
<button id="btn">Click</button>

JQuery的:

$("#btn").click(function() {
    // GET ALL TOTAL CHECKED CHECKBOXES
    var total_checked = $('input[type="checkbox"]:checked').length;

    // TOTAL CHECK BOXES
    var total_boxes = $('input[type="checkbox"]').length

    if(total_checked === total_boxes) {
           alert('Checked All');
    } else {
         alert('Please select all check boxes'); return false;
    }

});

小提琴:http://jsfiddle.net/A9MBS/1/

建议:用户点击1个特定复选框后,动态选择所有

$('input[type="checkbox"]').click(function() {

    if($(this).is(':checked')) {
        $('input[type="checkbox"]').prop('checked', true);
    } else {
        $('input[type="checkbox"]').prop('checked', false);
    }

});

小提琴:http://jsfiddle.net/A9MBS/2/

答案 1 :(得分:1)

检查单击处理程序中是否选中了框,不要根据选中的框附加单击处理程序:

$('.button').on('click',function(){
    var boxes = $('.checkbox[type="checkbox"]');
    if ( boxes.length === boxes.filter(':checked').length ) {
         // all checked
    }else{
         // not all checked
    }
});

答案 2 :(得分:1)

单击按钮时,应检查是否选中了所有复选框

$('.button').on('click',function(){
  var a = $("input[type='checkbox'].checkbox");
  if(a.length == a.filter(":checked").length){
    // do something, no issue here
  }
  else {
    // do alert thingy
  }
});

答案 3 :(得分:0)

你可以试试这个 html

<input type='checkbox' name="chkb" />
<input type='checkbox' name="chkb" />
<button id="btn">Click</button>

脚本代码

$(document).ready(function(){
    $('#btn').on('click',function(){
        if($('input[type="checkbox"]:not(:checked)').length>0)
            alert("please select all checkboxes");
    });
});

此代码检查是否未在单个选择器中选中所有复选框