Eu tenho 3 botões de opção na minha página da web, como abaixo:
<label for="theme-grey">
<input type="radio" id="theme-grey" name="theme" value="grey" />Grey</label>
<label for="theme-pink">
<input type="radio" id="theme-pink" name="theme" value="pink" />Pink</label>
<label for="theme-green">
<input type="radio" id="theme-green" name="theme" value="green" />Green</label>
No jQuery, quero obter o valor do botão de opção selecionado quando qualquer um desses três for clicado. No jQuery, temos seletores id (#) e class (.), Mas e se eu quiser encontrar um botão de opção pelo nome, como abaixo?
$("<radiobutton name attribute>").click(function(){});
Por favor, diga-me como resolver este problema.
javascript
jquery
html
radio-button
Prashant
fonte
fonte
document.querySelectorAll("input:radio[name=theme]").forEach(function() { this.onclick=function() { var value = this.value; }; });
Respostas:
Isso deve ser feito, tudo isso está na documentação , que tem um exemplo muito semelhante a este:
Também devo observar que você tem vários IDs idênticos nesse snippet. Este é um HTML inválido. Use classes para agrupar um conjunto de elementos, não IDs, pois eles devem ser exclusivos.
fonte
[type='radio']
vez:radio
dessa maneira, o jQuery pode tirar proveito do aumento de desempenho fornecido peloquerySelectorAll()
método DOM nativo .Para determinar qual botão de opção está marcado, tente o seguinte:
O evento será capturado para todos os botões de opção do grupo e o valor do botão selecionado será colocado em val.
Atualização: Depois de postar, decidi que a resposta de Paolo acima é melhor, pois ela usa menos uma travessia de DOM. Estou deixando esta resposta em pé, pois mostra como obter o elemento selecionado de uma maneira que seja compatível com vários navegadores.
fonte
[type='radio']
vez:radio
dessa maneira, o jQuery pode tirar proveito do aumento de desempenho fornecido peloquerySelectorAll()
método DOM nativo .:checked
para encontrar qual botão está marcado, por exemplo, com um manipulador de eventos de envio de formulário em que athis
palavra - chave não é mapeada para o botão clicado.fonte
$("input[name=theme]:checked").val();
(deixando a:radio
parte de fora e parece funcionar bem no IE, FF, Safari e Chrome. Eu tive que trabalhar com o jQ v 1.3 ... Claro, isso significa que existe apenas um elemento chamado 'theme'outra maneira
fonte
$themeRadios = $('input:radio[name=theme'])
para definir qualquer manipulador de eventos e, em seguida, obter o valor usando o filtro, por exemplo$themeRadios.filter(":checked").val()
.Isso funciona muito bem para mim. Por exemplo, você tem dois botões de opção com o mesmo "nome" e deseja apenas obter o valor do verificado. Você pode tentar este.
fonte
O código a seguir é usado para obter o valor do botão de opção selecionado por nome
Graças Adnan
fonte
Encontrei essa pergunta enquanto pesquisava um erro depois de atualizar do 1.7.2 do jQuery para o 1.8.2. Estou adicionando minha resposta porque houve uma alteração no jQuery 1.8 e superior que altera a forma como esta pergunta é respondida agora.
Com o jQuery 1.8, eles preteriram os pseudo-seletores como: radio,: checkbox,: text.
Para fazer o que precede agora, basta substituir o
:radio
com[type=radio]
.Portanto, sua resposta agora é para todas as versões do jQuery 1.8 e superior:
Você pode ler sobre a alteração no leia - me 1.8 e o ticket específico para essa alteração , bem como entender o porquê na página do seletor de rádio: na seção Informações Adicionais.
fonte
$("input[type='radio'][name='theme']:checked")
Para quem não deseja incluir uma biblioteca, faça algo realmente simples:
jsfiddle
Para uma visão geral do desempenho das respostas atuais, verifique aqui
fonte
Se você deseja saber o valor do botão de opção padrão selecionado antes de um evento de clique, tente o seguinte:
fonte
Você pode usar a função de filtro se tiver mais de um grupo de rádio na página, como abaixo
Aqui está o violino
http://jsfiddle.net/h6ye7/67/
fonte
fonte
Se você deseja um valor verdadeiro / falso, use o seguinte:
fonte
Algo assim talvez?
Quando você clica em qualquer botão de opção, acredito que ele será selecionado, então isso será chamado para o botão de opção selecionado.
fonte
Se você possui mais de um grupo de botões de opção na mesma página, também pode tentar isso para obter o valor do botão de opção:
Felicidades!
fonte
também pode usar uma classe CSS para definir o intervalo de botões de opção e, em seguida, usar o seguinte para determinar o valor
fonte
Isso funcionou para mim ..
HTML:
Jquery:
Espero que ajude..
fonte
fonte
Você pode perceber que o uso do seletor de classe para obter o valor dos
ASP.NET RadioButton
controles está sempre vazio e aqui está o motivo.Você cria o
RadioButton
controleASP.NET
como abaixo:E
ASP.NET
renderiza o seguinte HTML para o seuRadioButton
Pois
ASP.NET
não queremos usar oRadioButton
nome ou o ID de controle, pois eles podem mudar por qualquer motivo fora do controle do usuário (alteração no nome do contêiner, nome do formulário, nome do controle do usuário, ...) como você pode ver no código acima.A única maneira possível de obter o valor do
RadioButton
jQuery usando o jQuery é usar a classe css, conforme mencionado nesta resposta a uma pergunta totalmente não relacionada, como a seguirfonte