jQuery UI Datepicker最小/最大日期更改检测

时间:2014-06-04 11:59:26

标签: javascript jquery jquery-ui datepicker

我有一个应用程序,动态更改日期选择器的最小/最大日期(因此,设置范围)。 我想在输入附近显示这个范围,以便用户可以看到范围。有几个动作,可以导致最小/最大日期的更改,所以我想每次调用选项更改时都这样做。当然,我可以为每个更改新部件进行代码和粘贴,但是......你理解:)

我想要什么: 某些事件,如onChangeOption,每次触发,都会更改datepickers选项。有这样的事吗?或任何想法?

1 个答案:

答案 0 :(得分:0)

为什么不进行一些覆盖,例如:

(function(){
    var oldDP = $.fn.datepicker;

    $.fn.datepicker = function()
    {
        var options = (arguments.length > 0 ? arguments[0] : null);
        console.log(options, arguments);

        if (typeof(options) === 'string' && options === 'option' && arguments.length === 3 && typeof(arguments[1]) === "string" && (arguments[1] === 'maxDate' || arguments[1] === 'minDate'))
        {
            $(this).trigger('myCustomTrigger');
        }
            return oldDP.apply(this, arguments);
    }
})();

$('body').append("<input id='test'>");
$('#test').datepicker();
$('#test').on('myCustomTrigger', function(){
    console.log("New #test maxDate set");
});
$('#test').datepicker('option', 'maxDate', "+1m +1w");
$('#test').datepicker('option', 'maxDate');

这只是一个想法&#34;。示例i创建一个调用实际datepicker的包装器,如果调用datepicker set option maxDate,则触发自定义事件。我甚至没有说出正确或最佳的方式。