26 votes

Pourquoi le fait de cliquer sur une case à cocher n'ajoute pas l'attribut checked='checked' ?

Lorsque je clique sur une case à cocher, pourquoi l'attribut coché n'est-il pas ajouté ? Vous pouvez voir le code ici http://jsfiddle.net/FCrSg/

90voto

Box9 Points 41987

Les Attribut HTML checked signifie : vérifié par défaut lors du chargement de la page. Cette ne le fera pas changent lorsqu'on clique sur la case à cocher.

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

Les Propriété DOM checked est en fait l'état actuel de la case à cocher et est soit vrai/faux. Il s'agit de l'état actuel de la case à cocher qui est soit vrai, soit faux. volonté change lorsque l'on clique sur la case à cocher, mais n'est pas visible lorsque l'on inspecte le code HTML.

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

10voto

PetersenDidIt Points 17498

Qu'essayez-vous de faire ? Vérifier s'il a été contrôlé ?

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

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

2voto

user113716 Points 143363

Si vous voulez le voir apparaître sur l'élément affiché dans la console, utilisez la commande native setAttribute() méthode.

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

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

Cela donnerait donc ceci :

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

La console devrait alors vous donner :

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

Cependant, vous n'auriez normalement pas besoin d'un tel attribut. En général, la propriété suffit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X