2012-10-03 55 views
42

miró a la especificación HTML, pero no podía hacer cara o cruz de la misma: http://www.w3.org/TR/html5/the-input-element.html#attr-input-checked¿Cuál es la forma correcta de marcar y desmarcar una casilla de verificación en HTML5?

Cuál es la forma correcta para comprobar una casilla de verificación en HTML (no dinámica)?

checked="true" 
checked="checked" 

¿Cuál es la forma correcta de desmarque una casilla de verificación?

<input type="checkbox" /> with no checked attribute 
checked="false" 
checked="none" 

¿Dónde comprobar la especificación de HTML para marcar/desmarcar una casilla de verificación?

Respuesta

7

<input type="checkbox" checked />

HTML5 no requieren atributos que tienen valores

+1

En realidad, esto no es una respuesta, le preguntaron "¿Cuál es la forma correcta de desmarque * * una casilla de verificación?" – YakovL

1
<form name="myForm" method="post"> 
    <p>Activity</p> 
    skiing: <input type="checkbox" name="activity" value="skiing" checked="yes" /><br /> 
    skating: <input type="checkbox" name="activity" value="skating" /><br /> 
    running: <input type="checkbox" name="activity" value="running" /><br /> 
    hiking: <input type="checkbox" name="activity" value="hiking" checked="yes" /> 
</form> 
3

Se puede hacer referencia a esta página en w3schools pero básicamente se puede utilizar cualquiera de:

<input checked> 
<input checked="checked"> 
<input checked=""> 
+0

¿Estas son todas para verificar? –

+0

Sí lo son, inténtalo y verás –

+2

En realidad, esto no es una respuesta, preguntaron "¿Cuál es la forma correcta de * desmarcar * una casilla de verificación?" – YakovL

15

según los diseños HTML5, el atributo checked es un “boolean attribute”, y “La presencia de un atributo booleano en un elemento representa el valor verdadero, y la ausencia del atributo representa el falso valor. "Es el nombre del atributo lo que importa, y es suficiente. Por lo tanto, para hacer una casilla de verificación inicialmente se marca, se utiliza

<input type=checkbox checked> 

Por defecto, en ausencia del atributo checked, una casilla de verificación está inicialmente sin control:

<input type=checkbox> 

mantener las cosas de esta manera los mantiene simple, pero si necesita ajustarse a la sintaxis XML (es decir, para usar HTML5 en la linealización XHTML), no puede usar un nombre de atributo solo. Entonces los valores permitidos (según los borradores HTML5) son la cadena vacía y la cadena checked, sin distinción entre mayúsculas y minúsculas. Ejemplo:

<input type="checkbox" checked="checked" /> 
4

En jQuery:

marcar la casilla:

$("#checkboxid").attr("checked","checked"); 

desmarcar la casilla:

$("#checkboxid").removeAttr("checked"); 

Las otras respuestas apuntan a la solución y se señalan a la documentación que después de seguir excavando te llevará a esta respuesta. Jukka K. Korpela tiene la razón por la cual esta es la respuesta correcta, básicamente seguí su enlace y luego busqué los documentos de jQuery para llegar a ese resultado.Pensé que salvaría a las personas futuras que encuentran este artículo esos pasos extra.

+1

Debería usar .prop(), no .attr() –

2

respuesta complementaria a la respuesta de Robert http://jsfiddle.net/ak9Sb/ en jQuery

Al obtener/establecer el estado casilla de verificación, uno puede encontrar estos fenómenos:

.trigger("click"); 

le examina una casilla sin marcar, pero no agregue el atributo registrado. Si usa activadores, no intente obtener el estado con el atributo "marcado".

.attr("checked", ""); 

No desactive la casilla de verificación ...

Cuestiones relacionadas