まず、チェックボックス要素のセットがあります。それをクリックするたびに、フォーム内でアクティブなチェックボックスの数をカウントする方法が必要です。次に、チェックするチェックボックスの数に制限を設けます。制限に達した場合は、残りのチェックボックスを無効にします。現在、jquery .length はチェックボックスの総数を返します。
ところで、私はカスタム javascript/css チェックボックスを使用していますが、考え方は同じだと思います
チェックされたチェックボックスの数を取得するために、.length
動作しますが、セレクターでinput:checked
:
var nbChecked = $("input:checked").length;
チェックボックスの数を制限するには、イベントをチェックボックスにバインドchange
し、この数に達したときにクリックを防止する必要があります...
jsFiddle の作業: http://jsfiddle.net/wpMzY/
サミュエルが回答した完全なコード例と、ユーザーが現在のオプションの選択を解除して別のオプションを選択できるようにするオプション:
var maxAmountChecked = 3;
$('input[type=checkbox]').change(function(){
if( $('input:checked').length > maxAmountChecked-1 ){
//disable all unchecked checkboxes, keeping checked boxes available to deselect
$('input:checkbox:not(:checked)').attr('disabled', 'disabled');
}else{
//if maximum amount is not reached, all checkboxes should be available
$('input[type=checkbox]').removeAttr("disabled");
}
});
既にお持ちのコードを貼り付けた場合は、さらにアドバイスすることができます。
チェックボックスがチェックされているかどうかを確認する方法を確認するには、次を参照してください:jQueryを使用してチェックボックスのチェックされたプロパティを確認してください
チェックボックスをチェック/チェック解除する方法を確認するには: jQuery でチェックボックスをチェックするにはどうすればよいですか?
有効化と無効化については、次を参照してください: JQuery - チェックボックスの有効化/無効化