установить общее количество флажков в массиве

у меня есть массив флажков, как это

  for($j=1;$j<=10;$j++)      
  <input type="checkbox" name="chkLimit[]" id="chkLimit_<?php echo $j;?>" value="<?php echo $j;?>" />

я получил 10 флажок

и я пишу код JQuery, как это ...

  $(document).ready(
    function (){
    setLimitSelection();
    }


);


   function setLimitSelection(){
    $('input[name="chkLimit[]"]').limitSelection(
        {
            // number of items to limit to
            limit: 4,
            // on error, do this
            onfailure: function (n){
                $("#idCheckboxMsg").html(
                    "You can not select more than " + n + " items."
                );
                return false;
            },
            // on success, do this
            onsuccess: function (n){
                $("#idCheckboxMsg").html("");
                return false;
            }
        }
    );
    $('select[name="selLimit[]"]').limitSelection(10);
}

$("input.chkLimit").click(function() {
    var numSelected = $("input.chkLimit[]:checked").length;
    var numLeft = 10 - parseInt(numSelected);
    $("#statusBox").html("You have "+numSelected+" CD's selected.<br>You have "+numLeft+" selections left.");
});

что я хочу: пользователь не может выбрать более 4 флажков

Спасибо

13.10.2009 12:59:09
2 ОТВЕТА

Я не проверял это, но он должен сделать работу за вас:

$(function(){
    $("#myCheckboxes input[type='checkbox']").change(
        var checked = $("#myCheckboxes input[type='checkbox'][checked]").length;
        if(checked == 4){
            $("#myCheckboxes input[@type='checkbox']").not(":checked").attr('disabled',true);
        }else{
            $("#myCheckboxes input[@type='checkbox']").not(":checked").attr('disabled',false);
        }
    )
});

Каждый раз, когда проверяется состояние флажка, он проверяет, сколько флажков отмечено. Если их 4, отключаются непроверенные поля, в противном случае они включаются. Это предполагает, что все они живут в контейнере под названием#myCheckboxes

0
13.10.2009 13:14:31
вам придется дать мне немного больше информации, чем это, если вы хотите, чтобы я продолжал помогать. Вы получаете ошибки?
inkedmn 13.10.2009 13:41:39

Похоже, у @inkedmn были некоторые синтаксические ошибки, но поле для комментариев просто недостаточно для разработки. Итак, вот что я думаю, он пытается сделать:

$(function(){
    $("#myCheckboxes input[type='checkbox']").change(function() {
        var checked = $("#myCheckboxes input[type='checkbox']:checked").length;
        if(checked == 4){
            $("#myCheckboxes input[type='checkbox']")
                .attr('disabled',true)
                .filter(':not(:checked)')
                .attr('disabled',false);
        } else {
            $("#myCheckboxes input[type='checkbox']").attr('disabled',false);
        }
    )
});

Это должно сделать это для вас.

0
13.10.2009 14:32:40
Ой, у меня была опечатка. Попробуйте новую версию.
KyleFarris 13.10.2009 14:32:34