個別のチェックボックスが選択されているかどうかを確認する方法を知っています。
しかし、私は次の問題を抱えています-フォームIDが与えられた場合、チェックボックスのいずれかが選択されているかどうか(つまり、1つ以上)を確認する必要があり、何も選択されていないかどうかを確認する必要があります。基本的に、私はこれら2つの質問に答える2つの個別の機能が必要です。助けていただければ幸いです。ありがとう!
実際には、何も選択されていない場合に通知する関数が必要です。これを知ることは他の質問に答えます。
個別のチェックボックスが選択されているかどうかを確認する方法を知っています。
しかし、私は次の問題を抱えています-フォームIDが与えられた場合、チェックボックスのいずれかが選択されているかどうか(つまり、1つ以上)を確認する必要があり、何も選択されていないかどうかを確認する必要があります。基本的に、私はこれら2つの質問に答える2つの個別の機能が必要です。助けていただければ幸いです。ありがとう!
実際には、何も選択されていない場合に通知する関数が必要です。これを知ることは他の質問に答えます。
回答:
あなたはこのようなものを使うことができます
if ($("#formID input:checkbox:checked").length > 0)
{
// any one is checked
}
else
{
// none is checked
}
$("#formID input:checkbox:checked").length
ここでも十分でしょう
if ($("#formID input:checkbox:checked").length){}
(>0
0は誤った値なので、(なしで)十分であると思います。james.padolsey.com/ javascript / truthy
:checkbox
セレクターに関して言っています:For better performance in modern browsers, use [type="checkbox"]
、api.jquery.com / checkbox - selector を参照してください-ラジオボタンbtwと同じ、use [type="radio"] rather than :radio
api.jquery.com / radio
jQuery .is
は指定されたすべての要素をテストし、それらの少なくとも1つがセレクターと一致する場合にtrueを返します。
if ($(":checkbox[name='choices']", form).is(":checked"))
{
// one or more checked
}
else
{
// nothing checked
}
is()
ようですが:checked
、@ rahulの回答に示されているように、セレクターに直接アクセスする方が適切なようです。is()は、「コールバック内」の場合により有用であるようです。api.jquery.com/ isを参照してください。それとも何か不足していますか?
.is(":checked")
あなたの解決策がより表現力があるという事実のためですが、残りについてはわかりません。
$("form input[type=checkbox]").is(":checked")
、よりシンプルでより一般的なアプローチかもしれません。
is
すると、見つかるとすぐに停止するため、パフォーマンスが向上する可能性があります。
あなたはこれを行うことができます:
if ($('#form_id :checkbox:checked').length > 0){
// one or more checkboxes are checked
}
else{
// no checkboxes are checked
}
どこ:
:checkbox
セレクタ:For better performance in modern browsers, use [type="checkbox"]
、参照api.jquery.com/checkbox-selector
これは、チェックボックスのリストのチェックボックスが変更されたかどうかを確認するために使用したものです。
$('input[type="checkbox"]').change(function(){
var itemName = $('select option:selected').text();
//Do something.
});
.length
ここで簡単に戻ることができます:
function areAnyChecked(formID) {
return !!$('#'+formID+' input[type=checkbox]:checked').length;
}
これは、指定されたフォームでチェックボックスを探し、存在するかどうかを確認し:checked
、存在するtrue
場合はそれを返します(それ以外の場合は長さが0になるため)。少しわかりやすくするために、ブール値に変換されていないバージョンを次に示します。
function howManyAreChecked(formID) {
return $('#'+formID+' input[type=checkbox]:checked').length;
}
これにより、チェックされた数が返されます。
ラフルの答えはあなたの質問に最適です。とにかく、チェックするチェックボックスのグループがあり、フォームのすべてのチェックボックスではない場合は、チェックボックスに移動できます。
たとえば、クラス名test_check
など、チェックするすべてのチェックボックスにクラス名を入力すると、グループに属するチェックボックスがオンになっているかどうかを確認できます。
$("#formID .test_check:checked").length > 0
返された場合true
、1つ以上のチェックボックスがクラス名test_check
でチェックされ、返されfalse
た場合はチェックされていないと仮定します。
それが誰かを助けることを願っています。ありがとう:)-
これがこの問題を解決する最良の方法です。
if($("#checkbox").is(":checked")){
// Do something here /////
};