JQuery - encontre um botão de opção por valor

95

Como eu usaria o JQuery para localizar um botão de opção por seu valor?

furgão
fonte

Respostas:

142

Experimente isto:

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

Isso selecionará todos os botões de opção com o atributo value="foobar".

quiabo
fonte
Obrigado, usei-o como tal: jQuery.each (cookieObj, function (i, val) {$ (": radio [value = val]"). Attr ('verificado', true);});
van
3
@test: Tente isto:function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
Gumbo
1
@Gumbo, se dermos um nome a essa função, podemos chamá-la assim ?: $ CHECKRadioValues ​​= findChecked ("valor");
Ben Sewards
25

Estou usando o jQuery 1.6 e isso não funcionou para mim: $(":radio[value=foobar]").attr('checked',true);

Em vez disso, estou usando: $('[value="foobar"]').attr('checked',true); e funciona muito bem.

O código real que estou usando limpa os rádios primeiro e usa em propvez deattr

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

$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);
dogatônico
fonte
este é um bug que foi corrigido? ou ainda devemos colocar aspas em torno do valor?
Simon_Weaver
19

Isso também pode ser alcançado:

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

Isso irá selecionar o rádio que tem o valor de aaa


Com .filter()método:

var radio =  $('input[type="radio"]').filter(function(){
                       return this.value === 'aaa';
                      }).val();
Jai
fonte
1
isso irá realmente selecionar todos os botões de opção e alterar seus valores para, em aaaseguida, retornar o'aaa'
bendman
5

digamos que você tenha algo assim no 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>

então esse tipo de coisa funciona.

$("fieldset input[name='UI_opt'][checked]").val()
dylan trevena
fonte
2

Um seletor completo seria assim:

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

dado que você provavelmente tem mais de um grupo de botões de opção como este

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

Usar um seletor de ID como este (próximo exemplo) é ruim porque você não deve ter vários elementos com o mesmo ID. Presumo que alguém que está encontrando essa pergunta já saiba que isso é ruim.

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

O que se segue :radiopode ou não ser do seu interesse

Como: radio é uma extensão jQuery e não faz parte da especificação CSS, as consultas usando: radio não podem tirar vantagem do aumento de desempenho fornecido pelo método nativo DOM querySelectorAll (). Para um melhor desempenho em navegadores modernos, use [type = "radio"].

Simon_Weaver
fonte