jQuery-値でラジオボタンを見つける


95

JQueryを使用して、その値でラジオボタンをどのように検索しますか?

回答:


142

これを試して:

$(":radio[value=foobar]")

これにより、属性を持つすべてのラジオボタンが選択されますvalue="foobar"


ありがとう、jQuery.each(cookieObj、function(i、val){$( ":radio [value = val]")。attr( 'checked'、true);});
バン

3
@test:代わりにこれを試してください:function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
Gumbo

1
@Gumboその関数に名前を付けた場合、そのように呼び出すことができますか?:$ checkedRadioValues = findChecked( "value");
Ben Sewards 2013

25

私はjQuery 1.6を使用していますが、これは私にとってはうまくいきませんでした: $(":radio[value=foobar]").attr('checked',true);

代わりに、私は使用しています:$('[value="foobar"]').attr('checked',true); そしてそれは素晴らしい働きをします。

私が使用している実際のコードは最初に無線をクリアし、prop代わりに使用しますattr

$('[name=menuRadio]').prop('checked',false);

$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);

これは修正されたバグですか?それとも、値を引用符で囲む必要がありますか?
Simon_Weaver

19

これもこれによって達成できます:

$('input[type="radio"][value="aaa"]').val();

これにより、aaaの値を持つラジオが選択されます


.filter()方法:

var radio =  $('input[type="radio"]').filter(function(){
                       return this.value === 'aaa';
                      }).val();

1
これにより、実際にすべてのラジオボタンが選択され、その値変更されて、次の値aaa返されます'aaa'
ベンドマン

5

HTMLに次のようなものがあるとします。

<fieldset>
    <input type="radio" name="UI_opt" value="alerter" checked> Alerter<br/>
    <input type="radio" name="UI_opt" value="printer"> Printer<br/>
    <input type="radio" name="UI_opt" value="consoler"> Consoler<br/>
</fieldset>

次に、このようなことが機能します。

$("fieldset input[name='UI_opt'][checked]").val()

2

完全なセレクターは次のようになります。

bool shipToBilling = $("[name=ShipToBillingAddress][value=True]")

あなたがおそらくこのような複数のラジオボタングループを持っているとすれば

<input name="ShipToBillingAddress" type="radio" value="True" checked="checked">
<input name="ShipToBillingAddress" type="radio" value="False">

<input name="SomethingElse" type="radio" value="True" checked="checked">
<input name="SomethingElse" type="radio" value="False">

このようなIDセレクター(次の例)を使用するのはよくありません。同じIDの要素を複数持つべきではないからです。私はこの質問を見つけた誰かがすでにこれが悪いことを知っていると思います。

$("#DidYouEnjoyTheMovie:radio[value=yes]")

以下について:radioは、関心がある場合とない場合があります。

:radioはjQuery拡張であり、CSS仕様の一部ではないため、:radioを使用するクエリは、ネイティブのDOM querySelectorAll()メソッドによって提供されるパフォーマンスの向上を利用できません。最新のブラウザでより良いパフォーマンスを得るには、代わりに[type = "radio"]を使用してください。

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