Acabo de notar un comportamiento extraño en IE7.IE - botón de radio oculto no marcado cuando se hace clic en la etiqueta correspondiente
que tienen botones de radio con etiquetas asociadas de la siguiente manera:
<input type="radio" name="filter" id="filter_1" value="Activities" checked="checked" />
<label for="filter_1">Activities</label>
<input type="radio" name="filter" id="filter_2" value="Services" />
<label for="filter_2">Services</label>
El botón de radio se oculta a través de CSS con display: none o visibility: hidden (no preguntar)
El problema es - cuando hago clic en la etiqueta en IE7 (aún no he visto otras versiones de IE), el botón de opción asociado no está realmente marcado. Confirmé esto con jquery: el evento de clic de etiqueta se activó, pero el evento de clic de botón de opción no. Una publicación de formulario también confirma que el botón de opción no cambia.
Esto funciona correctamente en firefox, y también funciona correctamente si elimino el CSS que oculta los botones de opción.
¿Es esto un error de IE o me falta algo?
+1 Sí, eso funcionará. Tengo más curiosidad si este es un error conocido en IE. – ScottE
No creo que sea un error conocido, sino un comportamiento que no está claramente definido en la especificación. Mirando el artículo de MSDN que está vinculado desde la publicación a la que he vinculado anteriormente, parece que este comportamiento es completamente intencionado por parte de IE. Si se muestra algo: ninguno, entonces efectivamente no es parte del documento. MS ha elegido ignorar estos elementos, Mozilla ha elegido no hacerlo, no es que exista una forma clara o incorrecta de hacerlo. – robertc
No es muy bueno cuando el CSS de un diseñador puede romper los datos que llegan a un manejador de formularios del desarrollador al no transmitir un dato. Este comportamiento huele mal. Gracias por la solución! – Koobz