私はこのようなことをしたい:チェックボックスの量を制限する
でもちょっとした変化で。チェックボックスも連続している必要があります。
ちょっとした例:
10 個のチェックボックスがあり、制限が 3 の場合、ユーザーは 1 番目、2 番目、3 番目のみをチェックできます。または 3 番目、4 番目、5 番目。最初、3番目、4番目ではありません。
私はこのようなことをしたい:チェックボックスの量を制限する
でもちょっとした変化で。チェックボックスも連続している必要があります。
ちょっとした例:
10 個のチェックボックスがあり、制限が 3 の場合、ユーザーは 1 番目、2 番目、3 番目のみをチェックできます。または 3 番目、4 番目、5 番目。最初、3番目、4番目ではありません。
編集:連続するチェックボックスのコードを改訂しました。
$(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/
頭が痛いので、本当に書き出すのが面倒ですが、nextAll()
とprevAll()
機能を使って達成することができます。
実行すると$('input:checked').nextAll(':lt(2)');
、チェックされたチェックボックスから次の2つのチェックボックスが表示されます。このようにして、入力を確認する必要があります。必要な実際のロジックを理解できると確信しています。