ラジオボタンがJQueryでチェックされているかどうかを確認しますか?


584

ラジオボタンをチェック済みに設定できますが、特定のラジオボタンがチェックされたときにアクティブになる一種の「リスナー」を設定します。

たとえば、次のコードを見てください。

$("#element").click(function()
{ 
    $('#radio_button').attr("checked", "checked");
});

これは、checked属性を追加し、すべてが順調ですが、アラートを追加するにはどうすればよいでしょうか。たとえば、ラジオボタンがクリック機能の助けなしにチェックされると、それはポップアップしますか?



1
関連Monitoring when a radio button is unchecked stackoverflow.com/questions/5824639/...
エイドリアンはして

回答:


1082
$('#element').click(function() {
   if($('#radio_button').is(':checked')) { alert("it's checked"); }
});

ビンゴ!デビッドに感謝します。では、アラートを表示するにはアクション(クリックなど)を呼び出す必要がありますか?クリックせずにこれを行う方法はありますか?
キース・ドネガン、2010

3
これは「クリック機能の助けなしに」を解決しませんか?
Znarkus、2010

5
@Znarkus:OPは満足しているようです。あなたは自分の使用が('#radio_button').clickisなしであると主張しますclickか?
David Hedlund、2010

3
@David 2行目は-jQueryのif ($('#radio_button').is(':checked'))) { alert("it's checked"); }$記号を忘れたため、すべてをさらに括弧で囲む必要があります。
zuallauz

2
@zua:その通りです!以前と同じように、構文エラーさえありました(大括弧が一致していません)。修正済み
David Hedlund

154

同じ名前属性を共有するラジオボタンのグループがあり、送信時またはイベントでこれらのラジオボタンの1つがチェックされているかどうかを確認する場合は、次のコードで簡単に実行できます。

$(document).ready(function(){
  $('#submit_button').click(function() {
    if (!$("input[name='name']:checked").val()) {
       alert('Nothing is checked!');
        return false;
    }
    else {
      alert('One of the radio buttons is checked!');
    }
  });
});

ソース

jQuery API参照


これは私にはうまくいきませんでした。私が警告した場合($( "input [@ name = 'shipping_method']:checked")。val()); ラジオボタンが選択されていなくても、値が表示されます。
AndrewC

1
注:同じ名前を使用するラジオボタンのグループを含むフォームが複数ある場合は、送信されたフォームのフォームのみを確認する必要があります。これを行うための1つのオプションは、フォーム上のfindメソッドを使用している: $('#myform').submit(function(event){ if (!$(this).find("input[name='name']:checked").val()) {
ベンジャミン

41

Paragのソリューションでエラーが発生したため、ここに私のソリューションを示します(David HedlundとParagを組み合わせたもの)。

if (!$("input[name='name']").is(':checked')) {
   alert('Nothing is checked!');
}
else {
   alert('One of the radio buttons is checked!');
}

これは私にとってはうまくいきました!


32

changeイベントはIEでは機能しないため、チェックボックスのクリックイベントをバインドする必要があります。

$('#radio_button').click(function(){
    // if ($(this).is(':checked')) alert('is checked'); 
    alert('check-checky-check was changed');
});

プログラムで状態を変更するときは、このイベントもトリガーする必要があります。

$('#radio_button').attr("checked", "checked");
$('#radio_button').click();

18

//クラスをチェック

if($("input:radio[class='className']").is(":checked")) {
     //write your code         
}

//名前を確認する

if($("input:radio[name='Name']").is(":checked")) {
         //write your code         
}

//データを確認する

if($("input:radio[data-name='value']").is(":checked")) {
         //write your code         
}

10

別の方法は(jQuery> = 1.6)を使用することです:prop

$("input[type=radio]").click(function () {
    if($(this).prop("checked")) { alert("checked!"); }
});

確か.prop()にはるかに速く、単純にタイプするのが簡単です。
Marc.2377 2017年

10

ソリューションは簡単です。特定のラジオボタンがオンになっているときに「リスナー」が必要なだけだからです。やれ :-

if($('#yourRadioButtonId').is(':checked')){ 
// Do your listener's stuff here. 
}

6

クリック関数が必要ない場合は、jquery変更関数を使用します

$('#radio_button :checked').live('change',function(){
alert('Something is checked.');
});

これがあなたが探している答えです。1.9.1より上のバージョンのJqueryを使用している場合は、ライブ機能が廃止されたのでonを使用してみてください。


6

...皆さん、ありがとう...必要なのは、チェックされたラジオボタンの「値」だけで、セット内の各ラジオボタンには異なるIDがありました...

 var user_cat = $("input[name='user_cat']:checked").val();

私のために働く...


最も役立つ回答
amal50


3

動的に生成されたラジオボタンチェックラジオ取得値

$("input:radio[name=radiobuttonname:checked").val();

動的ラジオボタンの変更時

$('input[name^="radioname"]').change(function () {if (this.value == 2) { }else{}});

3

$( '。radio-button-class-name')。is( 'checked')は私にとってはうまくいきませんでしたが、次のコードはうまくいきました:

    if(typeof $('.radio-button-class-name:checked').val() !== 'undefined'){
     // radio button is checked
    }

1
IDではなくクラスで使用したため、要素ではなくノードリストが返されます。$('.radio-button-class-name').first().is(':checked')うまくいくはずだった。
Levi Johansen、



0

jQueryは今でも人気がありますが、依存関係を持たない場合は、以下を参照してください。ES-2015でラジオボタンがオンになっているかどうかを確認するための短い明確な機能:

function getValueFromRadioButton( name ){
  return [...document.getElementsByName(name)]
         .reduce( (rez, btn) => (btn.checked ? btn.value : rez), null)
}

console.log( getValueFromRadioButton('payment') );
<div>  
  <input type="radio" name="payment" value="offline">
  <input type="radio" name="payment" value="online">
  <input type="radio" name="payment" value="part" checked>
  <input type="radio" name="payment" value="free">
</div>


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

1.6より前のバージョンのjQueryでは、以下を使用します。

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

2
これにより、クエリの代わりにプロパティの値が設定されますchecked
Marc.2377 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.