JQuery est en train de changer de case à cocher de la valeur, mais la case n'est pas l'affichage en tant que bagages
J'ai une liste avec une case à cocher et un peu de texte (comme les e-mails de la boîte de réception). Je veux cocher/décocher la case quand je clique n'importe où sur l'élément de liste (ligne). J'ai utilisé le code suivant dans l'événement click de la ligne:
$(this).find(".cbx input").attr('checked', true);
Pour la première fois, c'est montrer l'objet d'une case à cocher. Mais lorsque je clique sur sélectionner la prochaine fois la valeur de la case checked="checked" mises à jour dans le code html (j'ai vérifié via firebug) mais la case à cocher n'apparaît pas en tant que bagages.
- Utilisation
prop
au lieu deattr
si vous utilisezjQuery 1.6+
et peut également vous fournir le code surjsfiddle
Vous devez vous connecter pour publier un commentaire.
Avec
.attr()
vous définissez la valeur d'un attribut dans l'arborescence DOM. En fonction de la version du navigateur et la version jQuery (surtout 1.6), ce n'est pas toujours l'effet désiré.Avec
.prop()
, vous pouvez manipuler la propriété (dans ce cas-ci, vérifié l'état"). Je recommande fortement d'utiliser.prop()
dans votre cas, donc la suite va basculer correctement:Pour de plus amples informations, veuillez vous référer à la la documentation de .prop().
Presque droit, il suffit d'utiliser "cochées" au lieu de la vérité:
Mise à jour: Alternativement, vous pouvez l'utiliser avec les nouvelles versions de JQuery:
Facile, la solution est d'utiliser $("xxxxxx").prop('checked', vrai) ou faux Test OK dans Jquery 1.11.x.
Acclamations
DÉMO EXEMPLE DE CODE
Exemples: (Code JavaScript case d'un tableau)
Exemples: (Code HTML checkbox pour une table)
Exemple: (Code ComponentHTML l'utilisation de JavaScript)
rien n'a d'abord travaillé pour moi dans chrome, mais ça marchait très bien sous mozilla.
Découvert plus tard que le style custom CSS causé la coche à ne pas être visible.
Cette solution ne fonctionne pas pour moi (c'est à dire. Réglage de l'état coché avec prop).
Alors que l'état sous-jacent toujours mis à jour correctement, l'écran ne serait pas correctement repeindre.
Cela peut être résolu avec.
Voir ce fil pour plus d'info.
attr
également travaillé (mais la première fois seulement)Mais
prop
fonctionne toujours.