Datepicker de JQuery OnSelect et TextChanged problème
Depuis l'ajout d'un OnSelect à mon Datepicker, l'événement TextChanged ne tire plus de ce contrôle. Mon code est comme suit:
$(function() {
$("#<%=txtStartDate.ClientID %>").datepicker({
minDate: 0,
dateFormat: 'dd-M-yy',
onSelect: function(dateText, inst) {
var theDate = new Date(Date.parse($(this).datepicker('getDate')));
$("#<%=txtEndDate.ClientID %>").datepicker('option', 'minDate', theDate);
}
});
$("#<%=txtEndDate.ClientID %>").datepicker({
dateFormat: 'dd-M-yy'
});
});
<%-- etc ---- %>
<asp:TextBox ID="txtStartDate" runat="server" AutoPostBack="true" OnTextChanged="txtStartDate_TextChanged"></asp:TextBox>
Mes autres datepicker (txtEndDate) événement TextChanged n'feu ne peut donc mettre vers le bas à la OnSelect en cours de définition pour la txtStartDate de contrôle.
Grandement reconnaissant de toute aide sur ce point. Cheers!
Vous devez vous connecter pour publier un commentaire.
Après une courte vérification de l'jQuery UI Datepicker sources de la solution est simplement de feu le changement vous-même
La raison pour laquelle ce sont les lignes suivantes dans le jQuery UI Datepicker source
Comme vous pouvez le voir jQuery UI Datepicker feu le
change
événement par défaut si le datepicker instance est uninput
le terrain mais n'a pas de feu si vous avez spécifié une coutumeonSelect
gestionnaire (comme vous l'avez fait).On pourrait dire que c'est le bon comportement comme elle vous garantit un maximum de facilité de configuration. Vous pouvez décider si vous voulez le
change
événement se produise ou pas de cette façon.Mais je suis d'accord que ce comportement peut-être devraient être documentées.
Vous pouvez simplement ajouter
$('<%=txtStartDate.ClientID %>').trigger('change');
à la fin de
onSelect
fonction. Examiner le montre l'exemple suivant:http://jsbin.com/oqunu/ ou de modifier la version http://jsbin.com/oqunu/edit
Ou de la déplacer ou de la logique de fonctions déclenchées par TextChanged et de se débarrasser de onSelect. Comme ici:
http://jsbin.com/iyajo; modifier la version http://jsbin.com/iyajo/edit
Dans une veine similaire, j'ai trouvé que si vous fixez le DatePicker pour un champ de saisie de texte, et de préciser
.selectMultiple
, alors le comportement bizarre se produit. Plus précisément, lorsque vous cliquez sur un déjà cellule sélectionnée (dans l'ordre pour le désélectionner), il clignote mais reste sélectionné. Cela se produit parce que d'abord la cellule ne va pas, mais alors DatePicker lance un "changement" de l'événement. L'événement de changement transforme le courant de la cellule arrière, car le calendrier est fixé à une saisie de texte!Ce sens que, d'une manière: vous ne devriez probablement pas le bâton de sélections multiples dans une seule zone de texte. Mais le comportement est sans-papiers et plutôt difficile à trouver, sauf si vous savez déjà comment DatePicker comprend des zones de texte.