dans jquery ui datepicker, l’événement OnSelect () existe quand même pour obtenir la date sélectionnée précédente

J’ai du code sur l’événement onSelect du jquery ui datepicker et je veux maintenant exécuter ma fonction uniquement si la date a changé de valeur (donc si un utilisateur sélectionne une date déjà présente dans la zone de texte, je ne souhaite pas être exécuté. ce code car ce sera un calcul redondant). Voici mon code existant.

$('#Milestone').datepicker({ dateFormat: 'dd M yy', onSelect: calcUpdate }); 

Vous pouvez utiliser des données pour stocker une valeur précédemment stockée et comparer la valeur actuelle à celle-ci.

Essayez ceci (mettez ces déclarations dans votre événement de préparation de document):

 $('#Milestone').data("prev", $(this).val()); $('#Milestone').datepicker({ dateFormat: 'dd M yy', onSelect: function(dateText){ var prevDate = $(this).data("prev") var curDate = dateText; if(prevDate == curDate){ $(this).data("prev", curDate) calcUpdate(); } } }); 

Selon http://api.jqueryui.com/datepicker/#option-onSelect , vous devriez essayer ceci:

 $('#Milestone').datepicker({ dateFormat: 'dd M yy', onSelect: function(curDate, instance){ if( curDate != instance.lastVal ){ //so, the date is changed; //Do your works here... } } }); 

La fonction onSelect reçoit 2 parameters qui sont utilisés ici; Vous pouvez déboguer / console les valeurs du second paramètre pour en savoir plus.