jQuery-Timepicker-Addon删除了预加载日期的时间

时间:2012-11-07 14:18:19

标签: jquery-ui datetimepicker

我正在尝试使用jQuery-Timepicker-Addon by Trent Richardson并且可能发现了一个错误,但我想在这里发帖看看是否有人看到我做错了。

我有一个开始日期/时间和结束日期/时间字段,我正在尝试同步它们以根据选择更新minDate / maxDate。当页面加载时,这两个文本字段可能已填充,这似乎导致我出现问题。

以下是我的问题的一个工作示例:http://jsfiddle.net/eQmsw/3/

以下是内联代码:

<input id="start" type="text" size="30" value="11/14/2012 02:45 PM" /> <input id="end" type="text" size="30" value="11/28/2012 12:00 AM" />​

$(function() {
    var startDate = new Date(2012,10,14,14,45,0,0);
    var endDate = new Date(2012,10,28,0,0,0,0);
    var startDatePicker = $('#start');
    var endDatePicker = $('#end');
    startDatePicker.datetimepicker({
        defaultDate: startDate,
        maxDate: endDate,
        showButtonPanel: true,
        changeMonth: true,
        changeYear: true,
        showOtherMonths: true,
        selectOtherMonths: true,
        ampm: true,
        stepMinute: 15,
        timeFormat: 'hh:mm TT',
        onSelect: function(selectedDateTime) {
            var minDate = startDatePicker.datetimepicker('getDate');
            endDatePicker.datetimepicker('option', 'minDate', minDate);
        }
    });
    endDatePicker.datetimepicker({
        defaultDate: endDate,
        minDate: startDate,
        showButtonPanel: true,
        changeMonth: true,
        changeYear: true,
        showOtherMonths: true,
        selectOtherMonths: true,
        ampm: true,
        stepMinute: 15,
        timeFormat: 'hh:mm TT',
        onSelect: function(selectedDateTime) {
            var maxDate = endDatePicker.datetimepicker('getDate');
            startDatePicker.datetimepicker('option', 'maxDate',  maxDate);
        }
    }); 
});​

如果您更改一个日期,则会删除另一个日期。一旦您更改了一个日期,并修复了另一个日期并删除了时间,所有其他更改将按预期工作。我将每个的'defaultDate'属性设置为与其初始值对应的日期。在现实生活中,我实际上解析了日期字符串,但认为这会更清楚。

我还会在github网站上的问题列表中发布这个项目,但是想在大多数人面前这样做。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

好吧,我找到了有用的东西。我想'defaultDate'选项不能像我期望的那样工作。如果它在初始化后在datetimepicker上设置了日期,则可以正常工作。

startDatePicker.datetimepicker('setDate', startDate);
endDatePicker.datetimepicker('setDate', endDate);