0

私はこのようなことをしたい:チェックボックスの量を制限する

でもちょっとした変化で。チェックボックスも連続している必要があります。

ちょっとした例:

10 個のチェックボックスがあり、制限が 3 の場合、ユーザーは 1 番目、2 番目、3 番目のみをチェックできます。または 3 番目、4 番目、5 番目。最初、3番目、4番目ではありません。

4

2 に答える 2

0

編集:連続するチェックボックスのコードを改訂しました。

$(function () {
    var mLimit = 3;
    $(':checkbox', 'div').click(function (e) {
        var c = 0;

        $(this)
            .parent()
            .find(':checkbox').each(function (i, el) {
                if (el.checked) c++;
                else c = 0;

                if (c > mLimit) e.preventDefault();
            });        
    });
});

デモ:http: //jsfiddle.net/sa2Lg/2/


以下のようなHTMLの場合、

<div>
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
</div>

以下のスクリプトを使用して制限できます。

$(function () {
    $(':checkbox', 'div').click(function (e) {
        if ($(this).parent().find(':checked').length > 3) {
            e.preventDefault();
        }
    });
});

デモ:http: //jsfiddle.net/sa2Lg/

于 2012-11-09T17:38:52.967 に答える
0

頭が痛いので、本当に書き出すのが面倒ですが、nextAll()prevAll()機能を使って達成することができます。

実行すると$('input:checked').nextAll(':lt(2)');、チェックされたチェックボックスから次の2つのチェックボックスが表示されます。このようにして、入力を確認する必要があります。必要な実際のロジックを理解できると確信しています。

于 2012-11-09T18:00:09.250 に答える