web-dev-qa-db-ja.com

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

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

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

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

.is(':checked')を使ってチェックされているかどうかを判断し、それに応じて値を設定します。

詳細情報はこちら

985
Andy Mikula
$("#ans").attr('checked') 

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

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

コメントごとに、可能であればpropではなくattrを使用してください。例えば:

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

$(selector).is(':checked')を使うだけ

ブール値を返します。

88
SimionBaws
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;
54

Stefan Brinkmannの答えは優れていますが、初心者には不完全です(変数の割り当てを省略します)。明確にするために:

// 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の回答を支持してください。

20
crashwap

これを試すことができます:

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

私は前に同じ問題を発見しました、この解決策があなたを助けることができると思います。まず、チェックボックスにカスタム属性を追加します。

<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();

テストできます ここ

15
alphakevin
$('input:checkbox:checked').val();        // get the value from a checked checkbox
7
nobody

また使用することができます:

$("#ans:checked").length == 1;
6
<input type="checkbox" id="ans" value="1" />

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

あなたの機能では:

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

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

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

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

4
Amit Maru
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
kmoney12

つかいます:

$("#ans option:selected").val()

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

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

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

.attr(':checked')を試したとき、checkedを返しましたが、ブール値が必要で、.val()は属性valueの値を返しました。

3
Robert

これを試して

$('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);
2
sharif2008

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

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

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

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

そうでない場合は 0 の値を設定してください

0
Ashok Charu

チェックされているかどうかの整数値が欲しい場合は、

$("#ans:checked").length
0
Nasaralla

これを実行することができます:

$('input[id=ans]').is(':checked');     
0
swathi
 $("#id").prop('checked') === true ? 1 : 0;
0
Paulo Rodrigues