チェックボックスがjQueryでチェックされているかどうかのテスト


588

チェックボックスがチェックされている場合は、値を1として取得するだけです。それ以外の場合は、0として取得する必要があります。jQueryを使用してこれを行うにはどうすればよいですか?

$("#ans").val() この場合、常に1つの権利が与えられます。

<input type="checkbox" id="ans" value="1" />

2
.val()は、チェックステータスではなく、value属性を取得するためのものです。value属性は何でもかまいません。ブール値である必要はありません。
Pablo Pazos 2016年

まだ周りにいる場合は、最新のソフトウェアの承認済みの回答を更新することをお勧めします。多くの人がまだこの質問を目にしています
xaxxon

回答:


1008

使用する.is(':checked')ことが確認され、それに応じてあなたの値を設定していますかどうかを判断します。

詳細はこちら。


1
さらに、if句で$( "#id")。is( "checked")を実行すると、オン/オフではなく、trueまたはfalseが返され、バックエンドスクリプトに送信できます。好きなことをしてください。
Zanoldor 2017

1
おそらくこれは今日では問題ではありません:ReSharper(おそらく)は「疑似クラス 'checked'はInternet Explorer 8.0と互換性がありません」という警告を出力します
Uwe Keim 2017

211
$("#ans").attr('checked') 

チェックされているかどうかを教えてくれます。2番目のパラメーターtrue / falseを使用して、チェックボックスをオンまたはオフにすることもできます。

$("#ans").attr('checked', true);

コメントごとpropattr、可能な場合は代わりに使用してください。例えば:

$("#ans").prop('checked')



21

ステファン・ブリンクマンの答えはすばらしいですが、初心者には不完全です(変数の割り当てが省略されています)。明確にするために:

// this structure is called a ternary operator
var cbAns = ( $("#ans").is(':checked') ) ? 1 : 0;

それはこのように動作します:

 var myVar = ( if test goes here ) ? 'ans if yes' : 'ans if no' ;

例:

var myMath = ( 1 > 2 ) ? 'yes' : 'no' ;
alert( myMath );

「いいえ」のアラート

これが役に立った場合は、Stefan Brinkmannの回答に賛成票を投じてください。


18

あなたはこれを試すことができます:

$('#studentTypeCheck').is(":checked");

15

私は以前に同じ問題を見つけました、この解決策があなたを助けることを願っています。最初に、カスタム属性をチェックボックスに追加します。

<input type="checkbox" id="ans" value="1" data-unchecked="0" />

値を取得するためのjQuery拡張機能を記述します。

$.fn.realVal = function(){
    var $obj = $(this);
    var val = $obj.val();
    var type = $obj.attr('type');
    if (type && type==='checkbox') {
        var un_val = $obj.attr('data-unchecked');
        if (typeof un_val==='undefined') un_val = '';
        return $obj.prop('checked') ? val : un_val;
    } else {
        return val;
    }
};

コードを使用してチェックボックスの値を取得します。

$('#ans').realVal();

ここでテストできます


10
... jQueryは「より多くのことを行う」というライブラリとして知られているため
myshadowself

あなたが遠くまで行ってきた長い話JQUERYは、開発者が書くことを少なくして、余分なことをもっとやってほしいと思っています。単純な問題は単純な解決策に値する
ShapCyber​​ 2015

はい、同意し、書く量を減らし、より多くのことを行います。拡張機能を1回記述し、残りの期間はAPI $(someradio).realVal()を呼び出すだけで、拡張機能を何度も記述する必要はありません。
alphakevin 2016年

拡張機能を1回作成する必要すらありませんでした。「何度も」気にしないでください!Oo
Coz

8
$('input:checkbox:checked').val();        // get the value from a checked checkbox

7
<input type="checkbox" id="ans" value="1" />

jquery: var test= $("#ans").is(':checked') そして、trueまたはfalseを返します。

あなたの関数では:

$test =($request->get ( 'test' )== "true")? '1' : '0';



4
function chkb(bool){
if(bool)
return 1;
return 0;
}

var statusNum=chkb($("#ans").is(':checked'));

statusNumは、チェックボックスがチェックされている場合は1、チェックされていない場合は0になります。

編集:DOMを関数に追加することもできます。

function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}

var statusNum=chkb($("#ans"));

4

最近、ユーザーがボタンをクリックしたときにチェックボックスのチェック値が必要なケースを経験しました。これを行う唯一の適切な方法は、prop()属性を使用することです。

var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;

これは私の場合うまくいったかもしれませんが、誰かがそれを必要とするでしょう。

私が.attr(':checked')それを試してみましたcheckedが、ブール値と.val()属性の戻り値が必要でしたvalue


4

いくつかのオプションがあります。

 1. $("#ans").is(':checked') 
 2. $("#ans:checked")
 3. $('input:checkbox:checked'); 

これらすべてのオプションがtrueを返す場合は、値を適宜設定できます。


最初のものは( ':checked')でなければならず、それ以外の場合は機能しません。
Arie Livshin 2016年

2

これを試して

$('input:checkbox:checked').click(function(){
    var val=(this).val(); // it will get value from checked checkbox;
})

チェックされている場合、ここでフラグはtrueです。それ以外の場合はfalse

var flag=$('#ans').attr('checked');

再びこれはチェックされます

$('#ans').attr('checked',true);


0

これらの2つの方法で値(true / false)を取得できます

$("input[type='checkbox']").prop("checked");
$("input[type='checkbox']").is(":checked");

0

最初に値がチェックされていることを確認します

$("#ans").find("checkbox").each(function(){
    if ($(this).prop('checked')==true){ 
    var id = $(this).val()
    }
});

それ以外の場合は0の値を設定します


0

整数値をチェックするかどうかは、次の方法を試してください。

$("#ans:checked").length

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.