Estou tentando definir um botão de opção. Quero defini-lo usando o valor ou o ID.
Isto é o que eu tentei.
$('input:radio[name=cols]'+" #"+newcol).attr('checked',true);
newcol
é o ID do botão de opção.
Talvez uma pequena edição esteja em ordem.
Existem dois conjuntos de caixas de rádio, uma com colunas e outra com linhas. Então eu vejo o ponto em não usar id's. Foi mal. Então, eu tenho como um exemplo:
<input type="radio" name="rows" class="listOfCols"
style="width: 50%; " value="Site"></input>
e
<input type="radio" name="cols" class="listOfCols"
style="width: 50%; " value="Site"></input>
com o ID removido e preciso definir o correto.
jquery
radio-button
mike628
fonte
fonte
Respostas:
Seu seletor procura o descendente de um
input:radio[name=cols]
elemento com o IDnewcol
(bem, o valor dessa variável).Tente fazer isso (já que você seleciona por ID):
Aqui está uma demonstração: http://jsfiddle.net/jasper/n8CdM/1/
Além disso, a partir do jQuery 1.6, o método preferido de alterar uma propriedade é
.prop()
: http://api.jquery.com/propfonte
prop
vsattr
.attr
descontinuado por propriedades e não funciona mais no jQuery 2.0))Encontrei a resposta aqui:
https://web.archive.org/web/20160421163524/http://vijayt.com/Post/Set-RadioButton-value-using-jQuery
Basicamente, se você quiser verificar um botão de opção, DEVE passar o valor como uma matriz:
fonte
No seu seletor, você parece estar tentando buscar algum elemento aninhado do seu botão de opção com um determinado ID. Se você quiser verificar um botão de opção, selecione esse botão no seletor e não outra coisa:
Isso pressupõe que você tenha o seguinte botão de opção na sua marcação:
Se o seu botão de opção tivesse um ID:
você poderia usar diretamente um seletor de identificação:
fonte
cols
nome,$('input:radio[name="cols"]').attr('checked', 'checked');
você selecionará apenas o último. Ele executará o código em cada um, mas sempre que você definir achecked
propriedade, o elemento definido anteriormente será desabilitado. Aqui está uma demonstração: jsfiddle.net/jasper/n8CdM/2Você pode tentar o seguinte código:
Isso definirá o atributo verificado para as colunas de rádio e o valor conforme especificado.
fonte
...the most important concept to remember about the checked attribute is that it does not correspond to the checked property.
Fonte: api.jquery.com/attrPor que você precisa
'input:radio[name=cols]'
. Não conhece seu html, mas assumindo que os IDs são únicos, você pode simplesmente fazer isso.fonte
Tente o seguinte:
Eu tive problemas com
attr("checked", true)
, então eu costumo usar o acima.Além disso, se você tiver o ID, não precisará desse outro material para a seleção. Um ID é único.
fonte
checked="checked"
atributo e o navegador mostrará como marcado, depois selecione B e o mesmo acontecerá. Agora, quando você selecionar A novamente, ele já teráchecked="checked"
atributo e nada será alterado. Como um efeito colateral de que B ainda vai ser seleccionado, não A.Como
newcol
é o ID do botão de opção, você pode simplesmente usá-lo como abaixo.fonte
O uso
.filter()
também funciona e é flexível para identificação, valor e nome:$('input[name="cols"]').filter("[value='Site']").attr('checked', true);
(visto neste blog )
fonte
Combinando respostas anteriores:
fonte
Você pode simplesmente usar:
fonte
A resposta escolhida funciona neste caso.
Mas a pergunta era sobre encontrar o elemento com base no grupo de rádio e no ID dinâmico, e a resposta também pode deixar o botão de opção exibido inalterado.
Essa linha seleciona exatamente o que foi solicitado enquanto mostra a alteração na tela também.
fonte