Hace aproximadamente un mes, la pregunta de Mitt quedó sin respuesta. Lamentablemente, ahora me encuentro con la misma situación.
http://api.jquery.com/change/#comment-133939395
Aquí está la situación: estoy usando jQuery para capturar los cambios en un botón de radio. Cuando se selecciona el botón de radio, habilito un cuadro de edición. Cuando se desmarca el botón de radio, me gustaría que se deshabilitara el cuadro de edición.
La habilitación funciona. Cuando elijo un botón de opción diferente en el grupo, el change
evento no se activa. ¿Alguien sabe cómo arreglar esto?
<input type="radio" id="r1" name="someRadioGroup"/>
<script type="text/javascript">
$("#r1").change(function () {
if ($("#r1").attr("checked")) {
$('#r1edit:input').removeAttr('disabled');
}
else {
$('#r1edit:input').attr('disabled', true);
}
});
</script>
javascript
jquery
html
radio-button
Antwarpes
fuente
fuente
id=r1
Respuestas:
Parece que la
change()
función solo se llama cuando marca un botón de radio, no cuando lo desmarca. La solución que utilicé es vincular el evento de cambio a cada botón de radio:O podría dar a todos los botones de radio el mismo nombre:
Aquí hay un ejemplo de jsfiddle que funciona (actualizado del comentario de Chris Porter).
Según el comentario de @ Ray, debe evitar usar nombres con
.
ellos. Esos nombres funcionan en jQuery 1.7.2 pero no en otras versiones ( ejemplo de jsfiddle ).fuente
parte de jquery
aqui esta la DEMO
fuente
.attr('checked')
a.prop('checked')
.Puede enlazar a todos los botones de radio a la vez por nombre:
Ejemplo de trabajo aquí: http://jsfiddle.net/Ey4fa/
fuente
Esto normalmente funciona para mí:
if ($("#r1").is(":checked")) {}
fuente
Mi problema fue similar y esto funcionó para mí:
fuente
Digamos que esos botones de radio están dentro de un
div
que tiene la identificaciónradioButtons
y que los botones de radio tienen el mismo nombre (por ejemplocommonName
):fuente
los
change
evento que no se dispara en la deselección es el comportamiento deseado. Debe ejecutar un selector sobre todo el grupo de radio en lugar de solo el botón de radio único. Y su grupo de radio debe tener el mismo nombre (con valores diferentes)Considere el siguiente código:
Tengo el mismo caso de uso que el suyo, es decir, mostrar un cuadro de entrada cuando se selecciona un botón de radio en particular. Si el evento también se disparara en la des-selección, obtendría 2 eventos cada vez.
fuente
El mismo problema aquí, esto funcionó bien:
fuente
Con Ajax, para mí trabajé:
HTML:
Javascript:
Y php:
fuente