Por que estou lutando com isso?
Eu tenho um valor: 5
Como verifico o botão de opção do grupo "mygroup" com o valor 5?
$("input[name=mygroup]").val(5); // doesn't work?
Com a ajuda do seletor de atributos, você pode selecionar o elemento de entrada com o valor correspondente. Então você deve definir o atributo explicitamente, usando .attr
:
var value = 5;
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked');
Desde o jQuery 1.6, você também pode usar o .prop
método com um valor booleano (esse deve ser o método preferido):
$("input[name=mygroup][value=" + value + "]").prop('checked', true);
Lembre-se de que você primeiro precisa remover o atributo marcado de qualquer um dos botões de opção em um grupo de botões de opção apenas e poderá adicionar propriedade / atributo marcado a um dos botões de opção nesse grupo de botões de opção.
Código para remover o atributo verificado de todos os botões de opção de um grupo de botões de opção -
$('[name="radioSelectionName"]').removeAttr('checked');
.is
não ajudaria aqui, mas eu concordo.prop
. Não estava disponível naquela época;) Atualizará minha resposta. Obrigado!.val()
suporta a configuração de valores em grupos de rádio ou caixa de seleção. O caminho dessa resposta funciona tecnicamente, mas é rotativo e muito menos legível / memorável.Existe uma maneira melhor de verificar rádios e caixas de seleção; você precisa passar uma matriz de valores para o método val em vez de um valor bruto
Nota: Se você simplesmente passar o valor sozinho (sem estar dentro de uma matriz ), isso resultará em todos os valores de "mygroup" sendo definidos como o valor.
Aqui está o documento do jQuery que explica como funciona: http://api.jquery.com/val/#val-value
E
.val([...])
também trabalha com elementos de formulário como<input type="checkbox">
,<input type="radio">
e<option>
está dentro de um<select>
.Violino demonstrando este trabalho: https://jsfiddle.net/92nekvp3/
fonte
Tente o seguinte:
Demonstração JS Fiddle .
fonte
fonte
Quando você altera o valor do atributo, como mencionado acima, o
change
evento não é acionado; portanto, se necessário, por alguns motivos, você pode acioná-lo da seguinte maneirafonte
$("input[name='RadioTest'][value='2']").prop('checked', true);
JS fiddle Demo
fonte
Ou você pode simplesmente escrever o atributo value:
Isso funciona para mim.
fonte
fonte
Versão JavaScript pura:
fonte
fonte