установить общее количество флажков в массиве - PullRequest
1 голос
/ 13 октября 2009

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

  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-х флажков

спасибо

Ответы [ 2 ]

0 голосов
/ 13 октября 2009

Похоже, у @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 октября 2009

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

$(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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...