Voici mon problème:
$('.datepick1').datepicker(); $('.datepick2').datepicker(); $('.datepick3').datepicker();
5 Réponses :
Vos trois entrées ont le même attribut EDIT STRUT> Votre code a donc été publié pour Le commentaire ci-dessous veut être remplacé par: p> ID code> sur eux. Vous ne pouvez pas faire cela,
Donc, j'ai une boucle (pour (i = 0; i
ceci ajoutez un dayspicker à mon entrée, mais si je sélectionne une date, il modifie la première entrée (en premier tr), mais si je modifie l'ID de «date» à «Date _ '+ arguments.num => Ce travail, voici comment Je résolvai mon problème ... Conclusion: Si vous appliquez un daysPicker à un élément, assurez-vous qu'il n'y a pas d'autre élément de votre page qui a le même identifiant
btw, newlivraison.template.date est quelque chose comme "
@nameZero: Mais le but est que, peu importe si la classe est unique, l'ID i> doit être unique, pas la classe. Les classes ne doivent pas nécessairement être uniques à chaque élément (et sont quelque peu inutiles si elles sont). Quelque part dans ce code ci-dessus, vous avez supposé être comme celui-ci Je rencontre un même problème, peut-être aider à quelqu'un. p>
Utilisez simplement les mêmes classes et avec la même profondeur, cela fonctionnera bien (au moins pour moi c'est). P> Dans mon cas, j'ai le contrôle DatePicker sur l'un des dialogues. Cette boîte de dialogue utilise quelque chose.Cshtml. Sur cette page, il existe une disposition pour ajouter un enfant qui a le même type. Ainsi, la boîte de dialogue sur la boîte de dialogue Parent utilise également le même CSHTML, à la suite de laquelle l'ID de l'entrée est identique. Maintenant, lorsque je sélectionne une date sur la boîte de dialogue enfant, elle définit réellement la date à la boîte de dialogue Parent. J'ai essayé des choses comme la spécification du nom du formulaire dans chaque boîte de dialogue .. comme p> Aucun d'entre eux n'a travaillé pour moi. Dans les deux cas, il définit la date de contrôle de la boîte de dialogue Parent. P> P> Le problème réside dans le code JQuery DatePicker dans la fonction _attachhandlers.
L'argument de la fonction est l'instance de l'actualité DatePicker 'Inst'.
L'entrée correcte est inst.input.
Mais l'ID 'n'est qu'une représentation à chaîne et vous ne pouvez jamais obtenir la bonne entrée si vous avez des identités en double.
La solution de contournement facile consiste à remplacer l'argument 'ID' dans les fonctions du gestionnaire avec l'inst.input de sorte qu'il pointera de l'entrée correcte. Également si vous regardez de plus près dans les fonctions du gestionnaire, vous pouvez voir qu'ils essaient d'être inverse Ingénieur à travers l'identifiant de retour à la bonne entrée ...
Pourtant, cela vous obtiendra le premier élément correspondant avec cette sorcière ID N'EST PAS ce que nous voudrions. P> et par $ (ins.input) nous renvoie inst.input Peut facilement le réparer avec ce minuscule réglage. P> acclamations p> code JQuery original UI.1.10.3 P>
Cela marche ! Mais comment faire ça .... de manière propre?
Le plus propre serait de le réparer dans le code de l'interface utilisateur JQuery original. J'utilise toujours le fichier JQuery-UI auto modifié (1.10). Impossible de confirmer si cette erreur est toujours présente en 1.12 car il y avait une erreur de passerelle Bad JQuery Server sur DonWloading. Acclamations td>') .append ($ (newlivraison.template.date) .val (arguments.date_livraison) .attr ('id', "Date") .Addclass ('date _' + arguments.num) .DatePicker ()) .CSS ("vertical-align", "haut"))
.attr ('id', 'date') code> - c'est b> où votre problème est, vous avez besoin de chacun pour avoir un différent i> id.
votes
votes
votes
votes
_attachHandlers: function(inst) {
var stepMonths = this._get(inst, "stepMonths"),
id = "#" + inst.id.replace( /\\\\/g, "\\" );
inst.dpDiv.find("[data-handler]").map(function () {
var handler = {
prev: function () {
$.datepicker._adjustDate(inst.input, -stepMonths, "M");
},
next: function () {
$.datepicker._adjustDate(inst.input, +stepMonths, "M");
},
hide: function () {
$.datepicker._hideDatepicker();
},
today: function () {
$.datepicker._gotoToday(inst.input);
},
selectDay: function () {
$.datepicker._selectDay(inst.input, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this);
return false;
},
selectMonth: function () {
$.datepicker._selectMonthYear(inst.input, this, "M");
return false;
},
selectYear: function () {
$.datepicker._selectMonthYear(inst.input, this, "Y");
return false;
}
};
$(this).bind(this.getAttribute("data-event"), handler[this.getAttribute("data-handler")]);
});
},
Pourriez-vous élaborer un peu plus sur votre problème? Un peu de code source, formatage et plus d'informations seraient utiles si vous voulez de bonnes réponses.
Valider. Valider. Valider. validator.w3.org Si votre balisage est cassé (indice: c'est), ce n'est pas déraisonnable de Attendez-vous à ce que JS se brise quand il essaie de le manipuler.
Vous avez l'idée des classes et des identifiants mélangés.
@Ben: Oui, cela semble comme ça. Je ne pouvais pas être absolument sûr qu'il n'y aurait pas d'autres entrées de catégorie DatePick1 Code> sur la page, je l'ai donc laissé sortir de ma réponse, mais ...