チェックボックスを使用する必要がありますが、送信ボタンはありません。チェックボックスを含む同じページである、ユーザーが既に表示しているページに影響を与える必要があります。
基本的に、チェックボックス要素は最大10個あります。ユーザーはそれらの特定の数を選択し、ボタン要素をクリックします。彼らがその要素をクリックしたとき、私はどのチェックボックスがチェックされているかを検出する必要があります。最短のコードでそれを行うための最良の方法は何ですか?
チェックボックスを使用する必要がありますが、送信ボタンはありません。チェックボックスを含む同じページである、ユーザーが既に表示しているページに影響を与える必要があります。
基本的に、チェックボックス要素は最大10個あります。ユーザーはそれらの特定の数を選択し、ボタン要素をクリックします。彼らがその要素をクリックしたとき、私はどのチェックボックスがチェックされているかを検出する必要があります。最短のコードでそれを行うための最良の方法は何ですか?
すべてのチェックボックスで同じクラスを共有します。
var allChecked = $(".checkBoxClass:checked");
これにより、クラス内のチェックされたチェックボックスのリストが返されますcheckBoxClass
。これで、各要素を繰り返し処理して操作できます。
for(var i=0; i<allChecked.length; i++) {
console.log("Checkbox " + $(allChecked[i]).val().toString() + " is checked");
}
試す:
<input type="checkbox" id="1" value="one"/>
<input type="checkbox" id="2" value="two"/>
<input type="checkbox" id="3" value="three"/>
<input type="button" onclick="validate()" value="Check"/>
<script type="text/javascript">
function validate(){
var chkArr = document.querySelectorAll('input[type="checkbox"]');
var notChecked='';
for(var i=0;i<chkArr.length;i++){
if(!chkArr[i].checked)
notChecked += chkArr[i].value
}
if(notChecked.length)
alert(notChecked);
}
</script>
これらのいずれかが機能するはずです。
$('input:checked');
$('input:checkbox:checked');
$('input:checkbox').filter(':checked');