JQuery - değere göre bir radyo düğmesi bulun


95

Bir radyo düğmesini değerine göre bulmak için JQuery'yi nasıl kullanabilirim?

Yanıtlar:


142

Bunu dene:

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

Bu, özniteliğe sahip tüm radyo düğmelerini seçecektir value="foobar".


Teşekkürler Bunu şu şekilde kullandım: jQuery.each (cookieObj, function (i, val) {$ (": radio [value = val]"). Attr ('kontrol edildi', doğru);});
minibüs

3
@test: Bunun yerine şunu deneyin:function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
Gumbo

1
@Gumbo bu işleve bir isim verirsek, onu böyle çağırabilir miyiz ?: $ checkredRadioValues ​​= findChecked ("değer");
Ben Sewards

25

JQuery 1.6 kullanıyorum ve bu benim için çalışmadı: $(":radio[value=foobar]").attr('checked',true);

Bunun yerine kullanıyorum: $('[value="foobar"]').attr('checked',true); ve harika çalışıyor.

Kullandığım gerçek kod önce radyoları temizler ve propbunun yerine kullanırattr

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

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

bu düzeltilmiş bir hata mı? yoksa yine de değerin etrafına tırnak işareti koymalı mıyız?
Simon_Weaver

19

Bu da şu şekilde sağlanabilir:

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

Bu, aaa değerine sahip radyoyu seçecektir.


İle .filter()yöntemle:

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

1
Bu aslında tüm radyo düğmelerini seçin ve olacaktır onların değerlerini değiştirmek için aaadönmek sonra'aaa'
bendman

5

HTML'de buna benzer bir şey olduğunu söyle:

<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>

o zaman bu tür şeyler çalışır.

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

2

Tam bir seçici şöyle görünür:

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

muhtemelen bunun gibi birden fazla radyo düğmesi grubunuz olduğu göz önüne alındığında

<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">

Bunun gibi bir kimlik seçici kullanmak (sonraki örnek) kötüdür çünkü aynı kimliğe sahip birden fazla öğeye sahip olmamanız gerekir. Bu soruyu bulan birinin bunun kötü olduğunu zaten bildiğini varsayıyorum.

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

Aşağıdakiler :radioilgi çekici olabilir veya olmayabilir

Çünkü: radyo bir jQuery uzantısıdır ve CSS belirtiminin bir parçası değildir,: radyo kullanan sorgular yerel DOM querySelectorAll () yöntemi tarafından sağlanan performans artışından yararlanamaz. Modern tarayıcılarda daha iyi performans için bunun yerine [type = "radio"] kullanın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.