jQueryでラジオボタンをチェックする方法


890

ラジオボタンをjQueryでチェックしてみます。これが私のコードです:

<form>
    <div id='type'>
        <input type='radio' id='radio_1' name='type' value='1' />
        <input type='radio' id='radio_2' name='type' value='2' />
        <input type='radio' id='radio_3' name='type' value='3' /> 
    </div>
</form>

そしてJavaScript:

jQuery("#radio_1").attr('checked', true);

動作しません:

jQuery("input[value='1']").attr('checked', true);

動作しません:

jQuery('input:radio[name="type"]').filter('[value="1"]').attr('checked', true);

動作しません:

別のアイデアはありますか?何が欠けていますか?


1
ご回答ありがとうございます!問題が見つかりました。実際には、最初の2つの方法が機能しています。重要なのは、jqueryUIを使用して、次のコードで3つのラジオボタンのセットをボタンセットに変換することです。jQuery( "#type")。buttonset(); しかし、ラジオをチェックする前にこの変更を行うと、ラジオセットが壊れてしまいました(理由はわかりません)。最後に、ラジオをチェックしてからボタンセットコールをかけたところ、申し分なく動作しました。
Alexis

$( "input:radio [value = '2']")。prop( 'checked'、true);を使用します。ここにリンクはfreakyjolly.com/...
コードスパイ

回答:


1469

jQueryのバージョンが1.6以上(> =)以上の場合は、次を使用します。

$("#radio_1").prop("checked", true);

(<)1.6より前のバージョンの場合は、次を使用します。

$("#radio_1").attr('checked', 'checked');

ヒント:後で電話するclick()change()、ラジオボタンをオンにすることもできます。詳細についてはコメントを参照してください。


80
jQuery 1.9以降では、このソリューションは機能しません。$( "#radio_1")。prop( "checked"、true);を使用します。代わりに。
installero

12
@Installeroは実際にprepは1.6以降で正しく、1.9以降で必要です。
John Dvorak

43
.change()最後に追加して、ページ上の他のイベントをトリガーすると便利です。
Foxinni 2013

13
これが.prop正しい答えであり、.attrメソッドがjQuery <1.6のメモであるように、この答えを再配置することは賢明かもしれません。
Patrick 14

22
アップデートにラジオグループ内の他のラジオボタンをしたい場合は、適切に使用$("#radio_1").prop("checked", true).trigger("click");
ポール・ルボー・

256

これを試して。

この例では、入力名と値でターゲットを設定しています

$("input[name=background][value='some value']").prop("checked",true);

知っておきたいこと:複数語の値の場合、アポストロフィのために機能します。


5
これはおそらく最良の方法です。他の人はそこに固執する傾向があり、関数は2回目に役に立たなくなりますが、これは期待どおりに機能します
Roy Toledo

選択できるのは1つしかないので、$( 'input [name = "type"]:checked')。val()も便利であることがわかりました。
ハギー、2014

詳しく説明してください。一般的なアイデアは、その属性(名前とオプションで値)でアドレス指定するラジオボタンをチェックすることです。名前属性と:checked疑似セレクターしか使用されていないので、これで何を達成しようとしているのかわかりません。また、valも取得しているので、かなり混乱します。ありがとう
Vladimir Djuricic 2014

2
私はすべてのラジオに「ID」を追加しようとしていましたが、この方法は問題なく機能しました。しかし、あなたが適切な引用符を含める必要がありますあなたの値が複数の単語があるとき(「紫色」と言う)があることに注意してください: $("input[name=background][value='color purple']").prop("checked",true);
トリスタンタオ

3
選択した回答よりもはるかに優れています!まさに私が探していたもの。これは一般的なものですが、選択した答えは具体的です。素晴らしいです、ありがとう。
GarbageGigo 2015年

96

同じ目的を果たす、jQuery 1.6に追加されたもう1つの関数prop()。

$("#radio_1").prop("checked", true); 

13
attr('checked', true)jQueryの1.9で私のために動作を停止し、これがソリューションです!
Pascal

1
機能しているようですprop("checked", true)が機能attr('checked', 'checked')していません
Tomasz Kuter

@TomaszKuter私はprop()を使用することをお勧めします。チェックされたDOMプロパティが動作に影響を与えるはずですが、奇妙なことに、このフィドル(jsfiddle.net/KRXeV)はattr('checked', 'checked')実際に機能しますx)
jave.web

ここで良いの曖昧さ回避のですstackoverflow.com/questions/5874652/prop-vs-attrは
code_monk

81

短くて読みやすいオプション:

$("#radio_1").is(":checked")

trueまたはfalseを返すため、「if」ステートメントで使用できます。


5
ありがとう!これは私が探していたものですが、(FYI)OPは値を取得するのではなく、ラジオボタンを設定する方法を尋ねていました。(「チェック」という言葉は質問を混乱させました。)
バンファー

31

これを試して。

Valueを使用してラジオボタンをチェックするには、これを使用します。

$('input[name=type][value=2]').attr('checked', true); 

または

$('input[name=type][value=2]').attr('checked', 'checked');

または

$('input[name=type][value=2]').prop('checked', 'checked');

IDを使用してラジオボタンをチェックするには、これを使用します。

$('#radio_1').attr('checked','checked');

または

$('#radio_1').prop('checked','checked');


13

$.prop方法が優れています:

$(document).ready(function () {                            
    $("#radio_1").prop('checked', true);        
});

次のようにテストできます:

$(document).ready(function () {                            
    $("#radio_1, #radio_2", "#radio_3").change(function () {
        if ($("#radio_1").is(":checked")) {
            $('#div1').show();
        }
        else if ($("#radio_2").is(":checked")) {
            $('#div2').show();
        }
        else 
            $('#div3').show();
    });        
});

9

あなたはしなければならない

jQuery("#radio_1").attr('checked', 'checked');

それがHTML属性です


7

プロパティnameが機能しない場合idでも、それが存在することを忘れないでください。この答えは、idあなたがここでどのようにやっているかをターゲットにしたい人のためのものです。

$('input[id=element_id][value=element_value]').prop("checked",true);

プロパティnameは私のために機能しないためです。あなたは囲まない作りidnameダブル/シングルクォーテーションで。

乾杯!



6

これを試して

$(document).ready(function(){
    $("input[name='type']:radio").change(function(){
        if($(this).val() == '1')
        {
          // do something
        }
        else if($(this).val() == '2')
        {
          // do something
        }
        else if($(this).val() == '3')
        {
          // do something
        }
    });
});

6

驚くべきことに、最も人気のある受け入れられた回答は、コメントにもかかわらず適切なイベントのトリガーを無視します。必ず呼び出してください。呼び出さ .change()ない場合、「変更時」のバインディングはすべてこのイベントを無視します。

$("#radio_1").prop("checked", true).change();

5
$("input[name=inputname]:radio").click(function() {
    if($(this).attr("value")=="yes") {
        $(".inputclassname").show();
    }
    if($(this).attr("value")=="no") {
        $(".inputclassname").hide();
    }
});

5

値を取得:

$("[name='type'][checked]").attr("value");

設定値:

$(this).attr({"checked":true}).prop({"checked":true});

ラジオボタンクリックして追加属性をチェック:

$("[name='type']").click(function(){
  $("[name='type']").removeAttr("checked");
  $(this).attr({"checked":true}).prop({"checked":true});
});

5

私たちは、伝えたいはずですradioコードを以下にしてみてくださいbutton.So。

$("input[type='radio'][name='userRadionButtonName']").prop('checked', true);

5

jQuery UIの使用中に誰かがこれを達成しようとしている場合に備えて、更新された値を反映するためにUIチェックボックスオブジェクトを更新する必要もあります。

$("#option2").prop("checked", true); // Check id option2
$("input[name='radio_options']").button("refresh"); // Refresh button set

4

私はこのコードを使用します:

英語でごめんなさい。

var $j = jQuery.noConflict();

$j(function() {
    // add handler
    $j('#radio-1, #radio-2').click(function(){

        // find all checked and cancel checked
        $j('input:radio:checked').prop('checked', false);

        // this radio add cheked
        $j(this).prop('checked', true);
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset class="section">
  <legend>Radio buttons</legend>
  <label>
    <input type="radio" id="radio-1" checked>
    Option one is this and that&mdash;be sure to include why it's great
  </label>
  <br>
  <label>
    <input type="radio" id="radio-2">
    Option two can be something else
  </label>
</fieldset>


4

例でこれを試してください

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm">
<input type="radio" name="radio" value="first"/> 1 <br/>
<input type="radio" name="radio" value="second"/> 2 <br/>
</form>


<script>
$(document).ready(function () {
    $('#myForm').on('click', function () {
        var value = $("[name=radio]:checked").val();

        alert(value);
    })
});
</script>


3
function rbcitiSelction(e) {
     debugger
    $('#trpersonalemail').hide();
    $('#trcitiemail').show();
}

function rbpersSelction(e) {
    var personalEmail = $(e).val();
    $('#trpersonalemail').show();
    $('#trcitiemail').hide();
}

$(function() {  
    $("#citiEmail").prop("checked", true)
});

2
$("#radio_1").attr('checked', true);
//or
$("#radio_1").attr('checked', 'checked');

2
$("#radio_1").attr('checked', true);これは機能しません。OPで述べたように
JohnP

2
回答のコードを説明し、質問を読んでください(これは試されました)
SomeKittens

2

私はいくつかの関連する例を強化しました。新しい条件を追加したい場合、たとえば、舗装と舗装スラブ以外のプロジェクトステータス値をクリックした後に配色を非表示にしたい場合はどうでしょうか。

例はここにあります:

$(function () {
    $('#CostAnalysis input[type=radio]').click(function () {
        var value = $(this).val();

        if (value == "Supply & Lay") {
            $('#ul-suplay').empty();
            $('#ul-suplay').append('<fieldset data-role="controlgroup"> \

http://jsfiddle.net/m7hg2p94/4/


2

さらに、要素がチェックされているかどうかを確認できます。

if ($('.myCheckbox').attr('checked'))
{
   //do others stuff
}
else
{
   //do others stuff
}

チェックされていない要素をチェックできます:

$('.myCheckbox').attr('checked',true) //Standards way

この方法でチェックを外すこともできます:

$('.myCheckbox').removeAttr('checked')

ラジオボタンをチェックできます:

jQueryのバージョンが1.6以上(> =)以上の場合は、次を使用します。

$("#radio_1").prop("checked", true);

(<)1.6より前のバージョンの場合は、次を使用します。

$("#radio_1").attr('checked', 'checked');

2

私はjquery-1.11.3.jsを使用しました

基本的な有効化と無効化

ヒント1:(ラジオボタンタイプの一般的な無効化と有効化)

$("input[type=radio]").attr('disabled', false);
$("input[type=radio]").attr('disabled', true); 

ヒント2:(prop()またはattr()を使用したIDセレクター)

$("#paytmradio").prop("checked", true);
$("#sbiradio").prop("checked", false);

jQuery("#paytmradio").attr('checked', 'checked'); // or true this won't work
jQuery("#sbiradio").attr('checked', false);

ヒント3:(prop()またはarrt()を使用したクラスセレクター)

$(".paytm").prop("checked", true);
$(".sbi").prop("checked", false);

jQuery(".paytm").attr('checked', 'checked'); // or true
jQuery(".sbi").attr('checked', false);

その他のヒント

$("#paytmradio").is(":checked")   // Checking is checked or not
$(':radio:not(:checked)').attr('disabled', true); // All not check radio button disabled

$('input[name=payment_type][value=1]').attr('checked', 'checked'); //input type via checked
 $("input:checked", "#paytmradio").val() // get the checked value

index.html

<div class="col-md-6">      
    <label class="control-label" for="paymenttype">Payment Type <span style="color:red">*</span></label>
    <div id="paymenttype" class="form-group" style="padding-top: inherit;">
        <label class="radio-inline" class="form-control"><input  type="radio" id="paytmradio"  class="paytm" name="paymenttype" value="1" onclick="document.getElementById('paymentFrm').action='paytmTest.php';">PayTM</label>
        <label class="radio-inline" class="form-control"><input  type="radio" id="sbiradio" class="sbi" name="paymenttype" value="2" onclick="document.getElementById('paymentFrm').action='sbiTest.php';">SBI ePAY</label>
    </div>
</div>

2

prop()メソッドを使用する

ここに画像の説明を入力してください

ソースリンク

<p>
    <h5>Radio Selection</h5>

    <label>
        <input type="radio" name="myRadio" value="1"> Option 1
    </label>
    <label>
        <input type="radio" name="myRadio" value="2"> Option 2
    </label>
    <label>
        <input type="radio" name="myRadio" value="3"> Option 3
    </label>
</p>

<p>
    <button>Check Radio Option 2</button>
</p>


<script>
    $(function () {

        $("button").click(function () {
            $("input:radio[value='2']").prop('checked',true);
        });

    });
</script>

1

これを試して

 $("input:checked", "#radioButton").val()

チェックされているTrue 場合は戻りますチェックされていない場合は戻りますFalse

jQuery v1.10.1

1

上記の解決策が機能しない場合は、以下を試すことができます:

jQuery.uniform.update(jQuery("#yourElementID").attr('checked',true));
jQuery.uniform.update(jQuery("#yourElementID").attr('checked',false));

あなたが試すことができる別の方法は:

jQuery("input:radio[name=yourElementName]:nth(0)").attr('checked',true);

1
UniformはフォームをきれいにするjQueryプラグインですが、追加の要素を追加することで実現しています。チェックされた値を更新しても、余分な要素の状態は更新されず、チェックされていない非表示の入力につながりますが、チェックされているように見える背景の要素が表示されます。jQuery.uniform.update()解決策です!
DenilsonSáMaia 2014

1

これを試して:

$(document).ready(function(){
  $("#Id").prop("checked", true).checkboxradio('refresh');
});

これは、checkboxradioプラグインのファイルを含めないと機能しません。これは、jQueryの組み込み関数を使用してこれを実行するだけでは無意味です(受け入れられた回答を参照)。
ネイサン

1

私は同様の問題を抱えていますが、単純な解決策は単に使用することです:

.click()

関数を呼び出した後にラジオを更新すると、他の解決策が機能します。


1
ie9でコールクリックが頭痛の種になることがある
Astolfo Hoscher

1

attrは2つの文字列を受け入れます。

正しい方法は次のとおりです。

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