11
votes

Ajout d'un attribut coché via jQuery

J'utilise le widget ci-dessous http://www.erichynds.com/examples/jquery-ui- multiselect-widget / démos / Il a beaucoup travaillé jusqu'à présent, mais je besoin d'aide pour ajouter des attributs. En utilisant Firebug, je l'ai remarqué que simplement en cliquant sur la case à cocher l'attribut checked n'apparaît pas comme j'attendre à. Dans mon code, j'ai modifié le widget, je suis en mesure d'ajouter du code pour supprimer l'attribut de vérification.

onclick="if($(this).attr(\'checked\') == \'true\') { this.setAttribute(\'checked\', \'checked\'); this.checked=true; } else { this.removeAttribute(\'checked\'); this.checked=false; }


2 commentaires

Merci les gars. La raison en est que je tente d'effectuer un événement Toggle () sur l'en-tête Optgroup. Lorsqu'un utilisateur clique sur ceci, il affectera la section associée à celle-ci, cependant, il affichera les éléments vérifiés. Cela fonctionne si vous basculez l'événement à l'arrière sans vérifier / décocher un élément. Le problème que j'ai, c'est que si vous avez un élément vérifié à la page charge, la bascule () fonctionnera. Si vous décochez cela, la bascule () ne fonctionnera pas pour cet article car je regarde l'attribut coché. Y a-t-il une autre façon de faire cela?


Vous n'avez pas besoin d'échapper aux guillemets simples qui sont enveloppés dans des citations doubles


4 Réponses :


1
votes

En utilisant Firebug, j'ai remarqué que en cliquant simplement sur la case à cocher L'attribut coché n'apparaît pas comme je l'attends.

Pourquoi avez-vous besoin de l'attribut coché du tout? La propriété cochée Fournit toutes les fonctionnalités dont vous auriez besoin, c'est-à-dire que la vérification de la case définit element.Checké sur true et inversement, c'est-à-dire Modification de élément.Checké changera l'état de la boîte.


2 commentaires

J'utilise finalement la propriété vérifiée pour basculer les optgroups pour un effet de spectacle / masquage. Si le code constate qu'un élément est coché lorsque l'événement de bascule est déclenché, affichez les éléments vérifiés, sinon les cache. Y a-t-il un autre moyen d'accomplir cet objectif?


Vous devez juste utiliser la propriété cochée de l'élément, par exemple. $ ('# id') [0] .CHECKED



2
votes

J'ai remarqué que en cliquant simplement sur la case à cocher L'attribut coché n'apparaît pas

C'est absolument correct. L'attribut coché n'est pas correspondant à la vérité actuelle de l'entrée; Cela correspond en fait à l'enregistrement initial du document HTML, à l'enregistrement qui sera rétabli si le formulaire est réinitialisé.

c'est-à-dire ajoute l'attribut car c'est-à-dire que c'est faux. getattribute / setattribute est cassé dans IE-NE JAMAIS les utilisez-les sur un document HTML! -Ils réellement définir la propriété, pas l'attribut.

Ceci est la propriété par défaut . Mais pourquoi essayez-vous de définir l'attribut coché ? Il n'y a presque jamais de bonne raison de. Normalement, la propriété cochée est ce que vous recherchez.


0 commentaires

23
votes

in jQuery pour supprimer un attribut Utilisez

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


0 commentaires

6
votes
$(this).prop('checked',true)

2 commentaires

Est-ce équivalent à $ (ceci) .attr ("coché", "coché");?


C'est la réponse préférée à JQuery 3.0+ ( api.jquery.com/prop )