JQuery datepicker- 2输入From和To

时间:2010-12-13 20:57:25

标签: jquery jquery-ui-datepicker

我在两个输入框中使用带有此timepicker addon的Jquery datepicker插件,一个用于“From”日期,第二个用于“To”日期。

当我设置第一个时,我希望第二个在第一个选择的日期后一天,禁用比“从”日期中选择的日期早的所有日期

如果首先选择“收件人”日期,则“发件人”日期设置为“收件人”日期前一天。

我找到了一些例子,但我不知道如何获得日期与时间。所以,如果我,例如,选择 13 / 12 / 2010年 15:50 在“发件人”日期,“收件人”日期中的日期设置为 14 / 12/2010 15:50 或至少 14 / 12/2010 00:00

已编辑***

我刚发现这个piece of code可以按照我的意愿运行,但没有时间戳插件。

 $(function(){

  $('#dateFrom').datepicker({
    dateFormat: 'dd/mm/yy',
    onSelect: function(dateText, inst) {
         $('#dateTo').datepicker('option','minDate', new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
          }
  });
  $('#dateTo').datepicker({
    dateFormat: 'dd/mm/yy',
    onSelect: function(dateText, inst) {
         $('#dateFrom').datepicker('option','maxDate', new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
    }          
  });

});

基于上面的代码,是否可以对其进行调整,以便我可以将它与timepicker插件一起使用?

事先谢谢

2 个答案:

答案 0 :(得分:1)

我已经掌握了大部分内容,但在小部件初始化之后无法弄清楚如何设置hourMinminuteMin。给出以下HTML:

<label for="from">From</label><input id="from" name="from" />
<label for="to">To</label><input id="to" name="to" />

这个JS:

$("#from").datetimepicker();
$("#to").datetimepicker({
    beforeShow: function(input, inst) {
        var $toDateInput = $("#to");
        var fromDate = $("#from").datetimepicker("getDate");
        var toDate = $toDateInput.datetimepicker("getDate");
        var afterFromDate;

        if (fromDate) {
            if (!toDate || (toDate <= fromDate)) {
                afterFromDate = new Date(fromDate.toUTCString());
                afterFromDate.setDate(afterFromDate.getDate() + 1);               
                $toDateInput.datetimepicker("setDate", afterFromDate);
            }
            $toDateInput.datetimepicker("option", "minDate", fromDate);
        }
    }
});

请在此处查看:http://jsfiddle.net/RWjtL/3/

您的大部分条件都已达到,但有一些事情已经结束:

  • 如果将“收件人”字段设置为空白,则不会删除“发件人”日期选择器的最小日期。我尝试将minDate选项设置为null""并获得了奇怪的行为。 Here's a documented issue that could be related
  • 多次调用beforeShow方法。我认为这是因为在处理程序中调用setDate,但无法确定。
  • 如上所述,我无法在事后设置hourMinminuteMin,并且设置minDate似乎不尊重日期的时间部分。< / LI>

作者GitHub page列出了一系列问题,其中一些似乎与我遇到的问题有关。希望至少让你开始。

答案 1 :(得分:0)

尝试使用onSelectonClose事件来更改minDate和maxDate选项。