2011-02-03 8 views
17

Cuando hago clic en una casilla de verificación, ¿por qué no se agrega el atributo de verificación ?. Puede ver el código aquí http://jsfiddle.net/FCrSg/Por qué al hacer clic en la casilla de verificación no se agrega el atributo checked = 'checked'

+1

Vamos a aclarar las cosas ... ¿espera que aparezca el atributo 'checked' en el HTML? – mdrg

+0

ver http://stackoverflow.com/questions/3602170/checkbox-value-when-calling-the-method-trigger-with-click-event –

Respuesta

6

¿Qué está tratando de hacer? Averiguar si está marcado?

$('.user_roles').click(function(){ 
    console.log($(this).is(':checked')); 
}); 

http://jsfiddle.net/petersendidit/FCrSg/1/

+0

La solución anterior funciona perfectamente para mí, pero también utilicé la función prop() que también funcionó perfectamente, pero para la misma dosis de código no funciona cuál es el motivo, por favor dígame – damon

+2

Esta respuesta en realidad no responde la pregunta. – oneloop

57

El atributo HTML checked significa: activada de forma predeterminada , cuando se carga la página. Este no cambiará cuando se haga clic en la casilla de verificación.

<input type="checkbox" checked="checked"> <!-- The HTML attribute --> 

La propiedad DOMchecked es en realidad el estado actual de la casilla de verificación y de que sea verdadero/falso. Este cambiará cuando se hace clic en la casilla de verificación, pero no está visible cuando se inspecciona el HTML.

$('input:check')[0].checked == true; 
// Whether or not the checkbox is currently checked 
+5

Esta es la respuesta. Olvídate de los atributos. –

2

Si desea ver aparecer en el elemento que aparece en la consola, utilice el método nativo setAttribute().

Ejemplo:http://jsfiddle.net/FCrSg/2/

this.setAttribute('checked',this.checked); 

Por lo que se vería así:

$('.user_roles').click(function(){ 
    this.setAttribute('checked',this.checked); 
    console.log($(this)); 
}); 

A continuación, la consola debe darle:

<input class=​"user_roles" type=​"checkbox" checked=​"true">​ 

Aunque normalmente no se necesita el atributo establecido así. Por lo general, la propiedad es suficiente.

Cuestiones relacionadas