2

我在我的应用程序中使用了复选框,尽管我努力了,但我仍然无法解决一个问题。

function allChecked(status,set){
    alert(set);
    if(status)
        $('input[type=checkbox]').attr('checked','true');
    else
        $('input[type=checkbox]').attr('checked',''); 
    }

上述函数根据“状态”的值选择或取消选择所有复选框。“set”是一个数字,指定应选择多少个复选框。所以我希望代码根据“set”的值选择复选框。我该怎么做呢?

4

3 回答 3

1

编辑 :

对于函数调用,您可以使用以下代码

function allChecked(){
    if($('#selectall').attr('checked', this.checked))
        $(".case").attr("checked", "checked");
    else
       $(".case").removeAttr("checked"); 

    }

示例:http: //jsfiddle.net/ipsjolly/wUgwz/7/

您也可以使用 ID 而不是调用函数

$(function(){

  // add multiple select / deselect functionality
  $("#selectall").click(function () {
      $('.case').attr('checked', this.checked);
  });

  // if all checkbox are selected, check the selectall checkbox
  // and viceversa
  $(".case").click(function(){

    if($(".case").length == $(".case:checked").length) {
        $("#selectall").attr("checked", "checked");
    } else {
        $("#selectall").removeAttr("checked");
    }

  });
});​

示例:http: //jsfiddle.net/ipsjolly/wUgwz/8/

来源:http: //viralpatel.net/blogs/multiple-checkbox-select-deselect-jquery-tutorial-example/

于 2012-12-25T05:24:07.833 回答
1

假设您要选中或取消选中N 个复选框(按照它们在 DOM 中出现的顺序),您可以使用slice方法来完成此操作:

function allChecked(status, set) {
    var checkboxes = $('input[type=checkbox]').slice(0, set);

    if (status) {
        checkboxes.attr('checked', 'checked');
    }
    else {
        checkboxes.removeAttr('checked');
    }
}

演示:http: //jsfiddle.net/brianpeiris/Xs9Vc/

于 2012-12-25T05:40:33.633 回答
0

尝试这样的事情

function allChecked(status,set){
alert(set);
if(status)
    $('input[type=checkbox]:lt('+set+')').attr('checked','true');
else
    $('input[type=checkbox]:lt('+set+')').attr('checked',''); 
}
于 2012-12-25T07:55:03.013 回答