¿Hay alguna razón para que val()
sea inútil para los controles de casilla de verificación, mientras que es útil para obtener datos de entrada consistentemente a través de cualquier otro control de entrada?jQuery val() y casillas de verificación
p. Ej. para las casillas de verificación, en aparece en , siempre vuelva a "on" independientemente del estado de la casilla de verificación. Para otros controles de entrada que en realidad no tienen un atributo de "valor", p. select y textarea, se comporta como era de esperar. Ver:
http://jsfiddle.net/jamietre/sdF2h/4/
no puedo pensar en una buena razón por la que no volvería true
o false
. De lo contrario, al menos, vuelva a "activar" solo cuando esté marcado, y una cadena vacía cuando no lo esté. De lo contrario, al menos siempre devuelve una cadena vacía, dado que las casillas de verificación no tienen el atributo value
.
Obviamente sé cómo obtener el valor usando attr
, pero esta es la situación. Estoy desarrollando una implementación C jQuery simple (hasta ahora de todos modos) para hacer un análisis HTML en el servidor, y estoy tratando de ser completamente fiel a la implementación de jQuery, por lo que se comporta de manera consistente en el cliente o servidor contra el mismo DOM. Pero esto parece estúpido y me está costando llegar a codificar el "valor" para volver a "ENCENDER" una casilla de verificación pase lo que pase. Pero si no lo hago, no será consistente. Así que estoy tratando de entender, ¿hay alguna razón para hacer esto? ¿Sirve para algún propósito, o es simplemente un artefacto de algún tipo? ¿Alguna vez alguien usaría el método val()
en una casilla de verificación? De ser así, ¿por qué? Si no, ¿por qué los arquitectos de jQuery decidieron sobre este enfoque para que no sea útil?
también debe cerrar sus etiquetas de opción – mcgrailm
Esto es muy extraño, pero es javascript. Simplemente ve con attr ('marcado') y lamentablemente no debes ser consistente. : | – ohmusama