3

JavaScript/jQueryを使用して特定のチェックボックスが選択されているかどうかを確認したい。

これが私が試したコードです:

var a;
    if ($("#add_desc").checked == 1){
        a = "true";
    }else{
        a= "false";
    }

私も試しました:

var a;
    if ($("#add_desc").checked){
        a= "true";
    }else{
        a= "false";
    }

変数に警告すると、常に false が返されますa

なぜそれが私にとってうまくいかないのですか?私はそれを間違っていますか?

ありがとう!

4

6 に答える 6

7

checkedチェックボックス入力でプロパティの値を取得するには、.prop()メソッドを使用するか、DOM要素から直接値を取得します。[0]最初に選択されたDOM要素を返します。

var a;
if ($("#add_desc")[0].checked){
    a= "true";
}else{
    a= "false";
}

また

var a;
if ($("#add_desc").prop("checked")){
    a= "true";
}else{
    a= "false";
}

編集
1.6より古いバージョンのjQuery.propは存在しませんでした.attr。直接の代替として使用してください。

于 2012-04-20T21:08:02.133 に答える
6

単純、

var a = $('#element:checkbox').is(':checked');
于 2012-04-20T21:09:44.340 に答える
5

「jQueryの方法」は、以下を使用すること.is(":checked")です。

var a;
if ($("#add_desc").is(":checked")){ // box is checked
    a = "true";
} else{ // box is not checked
    a= "false";
}

私はこれを私のWebアプリでよく使用し、完全に機能します。

jQueryの.isドキュメントページから:

他のフィルタリングメソッドとは異なり、.is()は新しいjQueryオブジェクトを作成しません。代わりに、変更せずにjQueryオブジェクトのコンテンツをテストできます。これは、イベントハンドラーなどのコールバック内で役立つことがよくあります。

于 2012-04-20T21:06:42.710 に答える
4

jQuery .is()と組み合わせた JavaScriptの三項演算子が最短の解決策です。

var a = ($("#add_desc").is(":checked")) ? "true" : "false";
于 2012-04-20T21:05:48.373 に答える
3

試す:

if ($('#add_desc').is(':checked')) {
  a = "true";
} else {
  b = "false";
}

文字列を使用したくない場合もあります。つまり、trueandfalseの代わりに"true"andを使用します。"false"

于 2012-04-20T21:06:42.560 に答える
2

試す

$get("#add_desc").checked == true

また

$("#add_desc").prop("checked", true);
$("#add_desc").prop("checked", false);
于 2012-04-20T21:07:31.670 に答える