在JQuery UI中动态更改选项DatePicker失败

时间:2010-12-07 03:16:19

标签: jquery jquery-ui-datepicker

我想使用jquery-ui datepicker进行日期范围选择。 #dteStart的第一次更改成功将#DteEnd设置为minDate。 但是如果我发出警报,#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 个答案:

答案 0 :(得分:26)

$("#dteEnd").datepicker("destroy");放在$("#dteEnd").datepicker(DateOptions);之前,它会正常工作。

答案 1 :(得分:18)

如果您只想更改已配置的选项,还可以执行以下操作:

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

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

答案 2 :(得分:2)

在这种情况下,以下jQuery辅助函数可能非常有用,可以保留原始选项:

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

它会保存以前的选项并使用新选项扩展它们。