2010-11-22 8 views
1

J'utilise l'événement onSelect afin de définir la valeur minimale de EndDate égale à la valeur définie comme StartDate. J'ai le même code sur plusieurs pages mais dans l'un d'entre eux ça ne marche pas. Si je sélectionne une valeur dans le StartDate, datepicker ne s'affiche pas lorsque je vais dans le champ EndDate. Les pages sont chargées et gérées avec ajax.jQuery Datepicker onSelect ne fonctionne pas

Mon code est le suivant:

$(document).ready(function() { 

$("#strStartDate").datepicker({ 
      dateFormat: 'dd/mm/yy', 
      constrainInput: true, 
      firstDay: 1, 
      hideIfNoPrevNext: true, 
      onSelect: function(){ 
       $("#strEndDate").datepicker("option", "minDate", $("#strStartDate").val()); 
      } 
    }); 

    $("#strEndDate").datepicker({ 
      dateFormat: 'dd/mm/yy', 
      constrainInput: true, 
      firstDay: 1, 
      hideIfNoPrevNext: true 
    }); 
}); 

Toute aide est très appréciée. Merci d'avance.

En utilisant les idées derrière vos commentaires je réussis à faire à peu près la chose que je veux

$("#strStartDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
}); 

$("#strEndDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     beforeShow: function (input, inst) { 
      inst.settings.minDate = $("#strStartDate").val(); 
    } 
}); 

Le code ci-dessus restreint l'utilisateur de mettre une date de fin inférieure à la date de début s'il y avait déjà une valeur en fin date, et vous modifiez la date de début à une valeur supérieure à la date de fin, il doit définir la date de fin égale à la date de début. Voilà ce que je voulais faire avec le code ci-dessous dans mon code début

onSelect: function(){ 
     $("#strEndDate").datepicker("option", "minDate", $("#strStartDate").val()); 
    } 

Toute idée comment faire en utilisant l'instance et non encore initialiser?

Répondre

0

Je ne suis pas sûr que cela va résoudre votre problème, mais essayez ceci:

$("#strStartDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     onSelect: function(selectedDate){ 
      $("#strEndDate").datepicker("option", "minDate",selectedDate); 
     } 
}); 
+0

Malheureusement, cela ne fonctionne pas – user516514

0

Cela devrait faire ce que vous avez besoin:

function fromTo(startDate, endDate) { 
    $(startDate + ", " + endDate).datepicker({ 
    onClose: function (dateText, inst) { 
     if ("#" + inst.id === startDate) { 
     $(endDate).datepicker("option", "minDate", $(startDate).val()); 
     } 
    }, 
    beforeShow: function (input, inst) { 
     if (inst.id == $(endDate).get(0).id) { 
     inst.settings.minDate = $(startDate).val(); 
     } 
    }, 
    dateFormat: 'mm/dd/yy', 
    constrainInput: true, 
    firstDay: 1, 
    hideIfNoPrevNext: true 
    }); 
} 

Utilisez fromTo("#startdate", "#enddate");

+0

Je ne comprends pas vraiment comment utiliser cette fonction. Quand cette fonction sera-t-elle appelée? – user516514

+0

Ok ... en utilisant l'idée derrière votre code, j'ai fait un pas en avant – user516514

1

Les Ok les gars ... Bonnes nouvelles ... au moins pour moi :)

$("#strStartDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     onSelect: function(){ 
      if ($("#strStartDate").val() > $("#strEndDate").val()){ 
       $("#strEndDate").val($("#strStartDate").val()); 
      } 
     } 
}); 

$("#strEndDate").datepicker({ 
     dateFormat: 'dd/mm/yy', 
     constrainInput: true, 
     firstDay: 1, 
     hideIfNoPrevNext: true, 
     beforeShow: function (input, inst) { 
      inst.settings.minDate = $("#strStartDate").val(); 
    } 
}); 

Ceci est le code final. Il crée uniquement une instance de chaque sélecteur de date et effectue la validation nécessaire lorsque vous souhaitez l'utiliser en tant que sélecteur de plage de dates.

Merci encore pour vos directives

Questions connexes