Respostas:
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.
$("input[name=mygroup]").val([5]);
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>
.
As entradas e as opções com um valor que corresponde a um dos elementos da matriz serão verificadas ou selecionadas, enquanto aquelas com um valor que não corresponda a um dos elementos da matriz serão desmarcadas ou desmarcadas.
Violino demonstrando este trabalho: https://jsfiddle.net/92nekvp3/
Tente o seguinte:
$('input:radio[name="mygroup"][value="5"]').attr('checked',true);
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 maneira
$('input[name=video_radio][value="' + r.data.video_radio + '"]')
.prop('checked', true)
.trigger('change');
$("input[name='RadioTest'][value='2']").prop('checked', true);
var key = "Name_radio";
var val = "value_radio";
var rdo = $('*[name="' + key + '"]');
if (rdo.attr('type') == "radio") {
$.each(rdo, function (keyT, valT){
if ((valT.value == $.trim(val)) && ($.trim(val) != '') && ($.trim(val) != null))
{
$('*[name="' + key + '"][value="' + (val) + '"]').prop('checked', true);
}
})
}
$('input[name="mygroup"]').val([5])