2010-12-07 2 views
13

Ich möchte Datumsbereichsauswahl mit jquery-ui Datepicker vornehmen. Die erste Änderung bei #dteStart ist erfolgreich, um minDate auf #dteEnd zu setzen. #dteEnd konnte jedoch seine Optionen bei der nächsten Änderung nicht aktualisieren, wenn der Wert DateOptions.minDate entsprechend dem Wert von dateMin geändert wurde.Ändern Sie die Option dynamisch in JQuery UI DatePicker schlägt fehl

Vielleicht vermissen ich etwas hier ...

$(document).ready(function() 
{ 
    $("#dteStart").datepicker() 
    .change(function() 
    { 
     dateStart = $(this).datepicker('getDate'); 
     dateMin = new Date(dateStart.getTime()); 
     dateMin.setDate(dateMin.getDate() + 1); 

     var DateOptions = { 
      dateformat: "mm/dd/yyyy", 
      minDate: dateMin 
     } 
     $("#dteEnd").datepicker(DateOptions); 
    }); 
}); 

TIA,

REV

Antwort

22

$("#dteEnd").datepicker("destroy"); setzen, bevor $("#dteEnd").datepicker(DateOptions); und es wird gut funktionieren.

+0

haa .., genau was ich brauche..danke mann .. – v14nt0

+0

Ich wünschte, ich könnte +2 auf diese Antwort geben! – Siddhant

15

Wenn Sie wollen einfach nur die bereits konfigurierten Optionen ändern, können Sie auch tun:

$("#dteEnd").datepicker("option", DateOptions); 

oder

$("#dteEnd").datepicker("option", { dateFormat: "mm/dd/yyyy" }); 
+0

Bitte geben Sie Ihren Code ein. – Manuel

+2

Zum Beispiel: $ (".publishdatepicker") .datepicker ("option", {yearRange: "-90: +1"}); – Pons

+0

Ihre zweite Zeile, funktioniert nicht mit mir, nur wenn Datumsformat ist dateFormat (mit einem Großbuchstaben F) jQueryUI 1.10.2 –

1

Die folgende jQuery-Helferfunktion in solchen Fällen nützlich sein kann, um das Original zu bewahren Optionen:

$.fn.customizeDatepicker = function(newOptions) { 
    var prevOptions = $(this).datepicker('option', 'all'); 
    $(this).datepicker('destroy').datepicker($.extend(prevOptions, newOptions)); 
    return this; 
}; 

Es speichert die vorherigen Optionen und erweitert sie mit den neuen Optionen.