Como definir a opção de rádio marcada como onload com jQuery?
É necessário verificar se nenhum padrão está definido e depois definir um padrão.
jquery
radio-button
Phill Pafford
fonte
fonte
Respostas:
Digamos que você tenha botões de opção como estes, por exemplo:
E você queria verificar aquele com o valor de "Masculino" onload se nenhum rádio estiver marcado:
fonte
$radios.removeAttr('checked')
antes do suporte. Isso confundirá o navegador e os valores publicados.Que tal um forro?
fonte
Este causará a falha form.reset ():
Mas este funciona:
fonte
Na verdade, o JQuery possui duas maneiras de definir o status verificado para caixas de seleção e rádio e depende se você está usando o atributo value na marcação HTML ou não:
Se eles tiverem atributo de valor:
Se eles não tiverem atributo de valor:
Mais detalhes
No primeiro caso, especificamos todo o grupo de rádio usando o nome e dizemos ao JQuery para encontrar o rádio para selecionar usando a função val. A função val pega uma matriz de 1 elemento e localiza o rádio com o valor correspondente, defina seu verificado = true. Outros com o mesmo nome seriam desmarcados. Se nenhum rádio com valor correspondente for encontrado, todos serão desmarcados. Se houver vários rádios com o mesmo nome e valor, o último será selecionado e outros serão desmarcados.
Se você não estiver usando o atributo value para o rádio, precisará usar um ID exclusivo para selecionar um rádio específico no grupo. Nesse caso, você precisa usar a função prop para definir a propriedade "marcada". Muitas pessoas não usam o atributo value com caixas de seleção, portanto, o número 2 é mais aplicável a caixas de seleção do que a rádios. Observe também que, como as caixas de seleção não formam grupo quando têm o mesmo nome, você pode fazer isso
$("[name=myCheckBox").prop("checked", true);
pelas caixas de seleção.Você pode jogar com este código aqui: http://jsbin.com/OSULAtu/1/edit?html,output
fonte
Gostei da resposta de @Amc. Achei que a expressão poderia ser condensada ainda mais para não usar uma chamada filter () (@chaiko aparentemente também percebeu isso). Além disso, prop () é o caminho a percorrer vs attr () para o jQuery v1.6 +, consulte a documentação do jQuery para prop () para obter as melhores práticas oficiais sobre o assunto.
Considere as mesmas tags de entrada da resposta de @Paolo Bergantino.
O one-liner atualizado pode ler algo como:
fonte
Eu acho que você pode assumir, esse nome é único e todo rádio do grupo tem o mesmo nome. Então você pode usar o suporte ao jQuery assim:
Nota: Passar matriz é importante.
Versão condicionada:
fonte
$("*")
lo corresponderia a tudo, então você deve usar um tipo de concessão$("input")
ou um ID ser ideal como o DOM tem chamadas nativas para obter um elemento por iddocument.querySelectorAll
faz todos os trabalhos.$("input[name=gender]")
ou$("input[name=gender]:radio")
ou (para navegadores modernos)$("input[name=gender][type=radio]")
Se você deseja que ele seja verdadeiramente dinâmico e selecione o rádio que corresponde aos dados recebidos, isso funciona. Ele está usando o valor de gênero dos dados passados ou usa o padrão.
fonte
Solução JS nativa:
http://jsfiddle.net/jzQvH/75/
HTML:
fonte
E se você deseja passar um valor do seu modelo e deseja selecionar um botão de opção do grupo na carga com base no valor, use:
Jquery:
E o html:
fonte
Não precisa de tudo isso. Com HTML simples e antigo, você pode conseguir o que deseja. Se você deixar o rádio que deseja verificar por padrão, assim:
<input type='radio' name='gender' checked='true' value='Male'>
Quando a página for carregada, ela será verificada.
fonte
fonte
Aqui está um exemplo com os métodos acima:
Em javascript:
fonte
Observe este comportamento ao obter valores de entrada de rádio:
Portanto
$('input[name="myRadio"]').val()
, não retorna o valor verificado da entrada de rádio, como seria de esperar - ele retorna o valor do primeiro botão de opção.fonte
Desta forma, o Jquery obtém apenas o elemento verificado
fonte
// Se você estiver fazendo isso em javascript ou em uma estrutura como backbone, encontrará muito isso, poderá ter algo parecido com isto
enquanto
não funciona,
vai.
seu seletor também pode ser como os outros caras acima.
fonte
Isso funciona para vários botões de opção
fonte