en parcourant les éléments avec jQuery basé sur le nom de l'attribut plutôt que des id
Merci de prendre le temps de lire ce.
J'ai un nombre inconnu de (inséré dynamiquement) des éléments d'entrée dans un formulaire, pour chaque de qui je veux joindre le composant inclus dans jQuery UI.
Tous les éléments de saisie que je veux joindre le datepicker pour avoir une classe de "date-pick". Bien sûr, parce que nous avons plus d'un élément correspondant nous avons besoin de plus que juste un nom de classe, de sorte que la date de valeur est retournée à l'origine de champ plutôt que de simplement le premier match.
Normalement, je serais probablement juste de faire quelque chose comme:
$("input.date-pick").each(function(){
$(this).datepicker({dateFormat: "yy-mm-dd"});
});
Cependant dans le code je suis travailler avec, l'apport d'éléments ne sont pas uniques IDs jusqu'à ce que les données du formulaire est enregistré (chose que je suis incapable de changer), mais ils n'ont unique nom des valeurs d'attribut de format name="field_id_x[y][z]"
qui, lorsque le formulaire est enregistré puis est converti en un id de format id="field_id_xyz"
.
Donc ma question est, quelqu'un peut me montrer comment faire une boucle sur tous les éléments d'entrée avec une classe de "date-pick" en fonction de leur nom les valeurs d'attribut?
(PS Il pourrait également être utile de mentionner que le nombre d'entrée des éléments dans le formulaire peut être augmenté/diminué par l'utilisateur à la volée.)
.date-pick
et joindre un contrôle datepicker. Pourquoi les noms de participer?Votey, voir mon commentaire sur T. J. Crowder la réponse ci-dessous
voir ma réponse. 🙂
OriginalL'auteur Tom Davies | 2009-08-25
Vous devez vous connecter pour publier un commentaire.
Le sélecteur de date n'a pas besoin d'éléments pour avoir une carte d'identité. Vous êtes déjà à la recherche de la éléments. Cela devrait fonctionner:
Noter que vous n'avez même pas besoin de la
each
appel.Exemple complet:
C'est étrange, il ne le fait pas pour moi, la date passe dans les champs appropriés quand je lance le test de la page. J'ai essayé IE7, FF3.0 (n'ont pas mis à jour encore), Safari 3 (erm, idem), Opera 9.64 et Chrome 2. Je pense que cela doit être quelque chose sur votre page à l'origine de ce comportement...
...et FF 3.5.2 et Safari 4.0.3 (juste pour être complet).
hmmm ok, merci T. J. - tu es complètement à droite comme votre page de test fonctionne comme prévu. Pense que j'ai repéré le problème c'est que le insérés dynamiquement des éléments d'entrée ont tous la même valeur d'id de pointe pour le "premier élément" comportement que j'ai rencontré. malheureusement, ce n'est pas quelque chose que je suis capable de changement dans l'environnement, je suis en train de travailler. désolé, je n'avais pas vu avant aujourd'hui. Suppose que je vais prendre avec le développeur qui code je suis d'accrochage dans ou essayer une autre voie. merci encore pour votre temps
Bonne chance avec elle. Vous voulez certainement de sorte que, ayant plusieurs éléments avec le même
id
est une Mauvaise Chose.OriginalL'auteur T.J. Crowder
Votre code devrait fonctionner comme il est. Cependant, vous pourriez en boucle par un nom comme ceci:
field_id_
donc besoin de faire une boucle par fondé à la fois le nom et la classe.J'ai ajouté de la classe pour le sélecteur.
merci kaiz.net mais ce code ne semble se déclencher lorsque la première (en html afin) d'entrée de l'élément est cliqué et pas que pour les suivants... vais essayer encore plus dépouillé de cas de test sans le insérés dynamiquement les entrées et voir si cela fonctionne alors
votre solution fonctionne parfaitement avec un minimum de cas de test, mais est interrompue par l'id en double des valeurs insérées par le code, je travaille avec - merci pour votre temps et votre attention!
OriginalL'auteur kaiz.net
avez-vous essayé quelque chose comme
OriginalL'auteur user511941