Tengo 3 botones de radio en mi página web, como a continuación:
<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>
En jQuery, quiero obtener el valor del botón de radio seleccionado cuando se hace clic en cualquiera de estos tres. En jQuery tenemos selectores id (#) y class (.), Pero ¿qué pasa si quiero encontrar un botón de opción por su nombre, como se muestra a continuación?
$("<radiobutton name attribute>").click(function(){});
Por favor, dime cómo resolver este problema.
javascript
jquery
html
radio-button
Prasante
fuente
fuente
document.querySelectorAll("input:radio[name=theme]").forEach(function() { this.onclick=function() { var value = this.value; }; });
Respuestas:
Esto debería hacerlo, todo esto está en la documentación , que tiene un ejemplo muy similar a esto:
También debo tener en cuenta que tiene varias ID idénticas en ese fragmento. Este es HTML no válido. Use clases para agrupar un conjunto de elementos, no ID, ya que deberían ser únicos.
fuente
[type='radio']
lugar de:radio
esa forma, jQuery puede aprovechar el aumento de rendimiento proporcionado por elquerySelectorAll()
método DOM nativo .Para determinar qué botón de radio está marcado, intente esto:
El evento se capturará para todos los botones de radio del grupo y el valor del botón seleccionado se colocará en val.
Actualización: Después de publicar, decidí que la respuesta de Paolo anterior es mejor, ya que usa un recorrido DOM menos. Estoy dejando que esta respuesta se mantenga, ya que muestra cómo obtener el elemento seleccionado de una manera que sea compatible con todos los navegadores.
fuente
[type='radio']
lugar de:radio
esa forma, jQuery puede aprovechar el aumento de rendimiento proporcionado por elquerySelectorAll()
método DOM nativo .:checked
para encontrar qué botón está marcado, por ejemplo, con un controlador de eventos de envío de formulario donde lathis
palabra clave no se asigna al botón en el que se hizo clic.fuente
$("input[name=theme]:checked").val();
(dejando la:radio
parte afuera y parece funcionar bien en IE, FF, Safari y Chrome. Tuve que trabajar con jQ v 1.3 ... Por supuesto, eso significa que solo hay un elemento llamado 'tema'de otra manera
fuente
$themeRadios = $('input:radio[name=theme'])
para configurar cualquier controlador de eventos y luego obtener el valor utilizando el filtro, por ejemplo$themeRadios.filter(":checked").val()
.Esto funciona muy bien para mi. Por ejemplo, tiene dos botones de opción con el mismo "nombre" y solo desea obtener el valor del marcado. Puedes probar este.
fuente
El siguiente código se usa para obtener el valor del botón de opción seleccionado por nombre
Gracias Adnan
fuente
Encontré esta pregunta cuando estaba investigando un error después de actualizar de 1.7.2 de jQuery a 1.8.2. Estoy agregando mi respuesta porque ha habido un cambio en jQuery 1.8 y superior que cambia cómo se responde esta pregunta ahora.
Con jQuery 1.8 han desaprobado los pseudo-selectores como: radio,: casilla de verificación,: texto.
Para hacer lo anterior ahora solo reemplace el
:radio
con[type=radio]
.Entonces su respuesta ahora es para todas las versiones de jQuery 1.8 y superiores:
Puede leer sobre el cambio en el archivo Léame 1.8 y el boleto específico para este cambio , así como comprender por qué en la página del selector de radio en la sección Información adicional.
fuente
$("input[type='radio'][name='theme']:checked")
Para cualquiera que no quiera incluir una biblioteca para hacer algo realmente simple:
jsfiddle
Para obtener una descripción general del rendimiento de las respuestas actuales, consulte aquí
fuente
Si desea conocer el valor del botón de opción predeterminado seleccionado antes de un evento de clic, intente esto:
fuente
Puede usar la función de filtro si tiene más de un grupo de radio en la página, como se muestra a continuación
Aquí está la URL del violín
http://jsfiddle.net/h6ye7/67/
fuente
fuente
Si desea un valor verdadero / falso, use esto:
fuente
¿Algo así quizás?
Cuando haces clic en cualquier botón de radio, creo que terminará seleccionado, por lo que se llamará al botón de radio seleccionado.
fuente
Si tiene más de un grupo de botones de radio en la misma página, también puede probar esto para obtener el valor del botón de radio:
¡Salud!
fuente
también puede usar una clase CSS para definir el rango de botones de radio y luego usar lo siguiente para determinar el valor
fuente
Esto funcionó para mí ...
HTML:
Jquery:
Espero eso ayude..
fuente
fuente
Puede notar que usar el selector de clase para obtener el valor de los
ASP.NET RadioButton
controles siempre está vacío y esta es la razón.Puede crear el
RadioButton
control de laASP.NET
siguiente manera:Y
ASP.NET
representa el siguiente HTML para suRadioButton
Porque
ASP.NET
no queremos usar elRadioButton
nombre o la identificación del control porque pueden cambiar por cualquier motivo fuera del alcance del usuario (cambio en el nombre del contenedor, nombre del formulario, nombre del control del usuario, ...) como puede ver en el código anterior.La única forma posible de obtener el valor de
RadioButton
usar jQuery es usar la clase css como se menciona en esta respuesta a una pregunta totalmente no relacionada como siguefuente