Динамически изменить параметр в JQuery UI DatePicker не удается - PullRequest
13 голосов
/ 07 декабря 2010

Я хочу сделать выбор диапазона дат с помощью jquery-ui datepicker.Первое изменение в #dteStart успешно устанавливает minDate в #dteEnd.Но #dteEnd не удалось обновить свои параметры при следующем изменении, если я предупреждаю DateOptions.minDate его значение изменилось в соответствии с dateMin.

Может быть, я что-то здесь упускаю ...

$(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

Ответы [ 3 ]

26 голосов
/ 07 декабря 2010

поставьте $("#dteEnd").datepicker("destroy"); перед $("#dteEnd").datepicker(DateOptions); и все будет работать нормально.

18 голосов
/ 03 августа 2013

Если вы просто хотите изменить уже настроенные параметры, вы также можете сделать:

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

или

$("#dteEnd").datepicker("option", { dateFormat: "mm/dd/yyyy" });
2 голосов
/ 05 ноября 2015

Следующая вспомогательная функция jQuery может быть полезна в таких случаях для сохранения исходных параметров:

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

Сохраняет предыдущие параметры и расширяет их новыми параметрами.

...