deux jQuery UI datepickers dans un formulaire, le "manque de données de l'instance'
J'en ai deux sélecteurs de date dans un formulaire. Ils ont des id, donc il ne devrait pas être liée à des erreurs similaires comme celui-ci.
jQuery. Appliquer sélecteur pour chaque champ dans un formulaire dynamique
L'erreur que je reçois dans firebug est
'uncaught exception: Manque de données d'instance pour ce datepicker'
Qui est déclenché lorsque je sélectionne un jour à partir de la '#copyTo' datepicker qui est la deuxième datepicker sur la forme. La première datepicker fonctionne parfaitement.
La forme que j'ai est
<form name="copier" action="copyEvents.php" method="post"> <input type="hidden" id="copyFromHid" name="copyFromHid"/> <input type="hidden" id="copyToHid" name="copyToHid"/> Copie De <input id="copyFrom" name="copyFrom"/> Copie <input type="text" id="copyTo" name="copyTo"/> <input type="hidden" name="gid" id="gid"/> <input type="submit" value="copier"/> </form>
Le jquery est
jQuery('input#copyFrom','div#copyFromHistory form')
.datepicker({
altField: 'input#copyFromHid',
altFormat: 'yy-mm-d',
dateFormat: 'd MM yy',
firstDay: 1,
beforeShowDay: function(date) {
return (date.getDay() == 1) ? [true, ""] : [false, ""]; }
});
jQuery('input#copyTo','div#copyFromHistory form')
.datepicker({
altField: 'input#copyToHid',
altFormat: 'yy-mm-d',
dateFormat: 'd MM yy',
firstDay: 1,
beforeShowDay: function(date) {
return (date.getDay() == 1) ? [true, ""] : [false, ""]; }
});
Des suggestions quant à la raison pour laquelle la première zone de travail, mais pas la seconde?
OriginalL'auteur pedalpete | 2010-01-22
Vous devez vous connecter pour publier un commentaire.
Deux choses viennent à l'esprit:
On est dans vos sélecteurs jQuery:
Dans les deux cas, vous passez le contexte/ownerDocument paramètre
jQuery()
mais qui est à la recherche de l'élément DOM ou d'un document... pas une chaîne.Et la deuxième chose, c'est:
Copie a
type="test"
et Copier De ne pas (bien que la valeur par défaut type de saisie de texte est... donc probablement pas que)Je soupçonne que vous voulez vraiment:
Le paramètre de contexte fonctionne comme vous le décrire... mais s'attend à un élément du DOM, pas une chaîne de caractères. Par exemple:
jQuery('input#copyFrom', document.forms[0])
qui serait à la recherche de la copyFrom d'entrée dans le premier élément de formulaire. Lorsque le sélecteur est à l'aide de l'id (par exemple, #copyFrom ou #copyTo), alors il n'est pas nécessaire d'utiliser le contexte. Que le sélecteur est équivalent àdocument.getElementById('copyFrom')
. À noter également: (Citation) "en Interne, le sélecteur de contexte est mis en œuvre avec l' .méthode find (), $('span', this) est équivalent à $(this).find('span')." ( api.jquery.com/jQuery/#jQuery1 )OriginalL'auteur Jonathan Fingland
Facile à résoudre, modifiez votre code pour quelque chose comme ceci:
Cette réponse pourrait ne comporter qu'un indice sur ce qui a été fait dans le but de le "réparer"
OriginalL'auteur medina