2012-03-26 9 views
1

Ich habe den folgenden Code:JQuery Datepicker - Wie ändert man das maximale Datum an einem bestimmten Startdatum?

$(function() {   
var dates = $("#from_date, #to_date").datepicker({    
defaultDate: "-1w", 
dateFormat: 'yy-mm-dd', 
      onSelect: function(selectedDate) { 
       if (selectedDate < "2012-03-27") { 
        maxDate: new Date(2012, 03 - 1, 27); // it will set minDate from 25 October 2009 
       }; 
       var option = this.id == "from_date" ? "minDate" : "maxDate", 
       instance = $(this).data("datepicker"), 
       date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat,selectedDate, instance.settings); 
       dates.not(this).datepicker("option", option, date); 

      } 
     }); 

    }); 

Ich brauche die MaxDate bis zum 2012-03-27 beschränkt werden, falls das Startdatum kleiner war, dass dann.

Ich habe alles versucht .... wirklich verzweifelt hier Dank, Danny

+0

In welchem ​​Bereich begrenzt? Du verwendest 'maxDate' nicht überall ... –

+0

Ich verstehe die Frage nicht. Bitte erläutern Sie, was Sie erreichen möchten. – Marc

+0

Hallo, Bitte erlauben Sie mir zu klären: wenn jemand das from_date vor dem 27.03.2012 auswählt möchte ich to_date auf den 27.03.2012 gesperrt sein habe ich versucht mit "maxDate: new Date (2012, 03 - 1 27); aber kein Glück. –

Antwort

3

Ok ich jetzt sehen, was Sie mit dem MaxDate zu tun versuchen. Sie versuchen, eine Option für den Datepicker festzulegen, während Sie sich in einem Event-Handler befinden!

$("#from_date, #to_date").datepicker({ 
    defaultDate: "-1w", 
    dateFormat: 'yy-mm-dd', 
    onSelect: function(selectedDate) { 
     // begin event handler 
     if (selectedDate < "2012-03-27") { 
      // you cannot set option of the datepicker like this from 
      // an event handler ! 
      maxDate: new Date(2012, 03 - 1, 27); 
     } 
     // end of event handler 
    } 
}); 

Um eine Option einer Datepicker-Instanz zu ändern, die Methode „Option“ des Plugins verwenden:

$(...).datepicker("option", <optionName>, <newValue>); 

Nun, ich bin noch nicht sicher, vollständig zu verstehen, was Sie mit den Daten wollen aber zu Schloss anderen picker zu einem bestimmten Zeitpunkt, können Sie die minDate gesetzt und die MaxDate so nur dieses Datum ist wählbar:

if (selectedDate < "2012-03-27") { 
    var maxDate = new Date(2012, 03 - 1, 27); 
    $("#to_date").datepicker("option", 'minDate', maxDate); 
    $("#to_date").datepicker("option", 'maxDate', maxDate); 
}