5

我有一个系统,人们可以在其中添加多个起止日期,即屏幕截图:http://screencast.com/t/Q7MHQVLnn4J9

在选择第一个日期时,onClose 事件会设置第二个输入的日期并打开它。IE

datePickers = function() {
    $(".from_date").datepicker({
      minDate: 'D',
      dateFormat: "dd/mm/yy",
      defaultDate: "+1w",
      numberOfMonths: 2,
      onClose: function(selectedDate) {
        $(".to_date").datepicker("option", "minDate", selectedDate);
        return $(".to_date").datepicker("show");
      }
    });
    return $(".to_date").datepicker({
      minDate: '+1D',
      dateFormat: "dd/mm/yy",
      defaultDate: "+1w",
      numberOfMonths: 2
    });
  };

当我有 2,3 或更多并编辑第一个或第二个时,我的问题就变成了....关闭时,它会打开最后一个输入。

我试过使用 .next('to_date') 和最接近的('to_date') 但它不起作用。

关于如何解决这个问题的任何建议。

根据要求提供小提琴:http: //jsfiddle.net/FdfPY/

4

1 回答 1

10

而不是使用return $(".to_date").datepicker("show");,请执行以下操作:

$(".from_date").datepicker({
      minDate: 'D',
      dateFormat: "dd/mm/yy",
      defaultDate: "+1w",
      numberOfMonths: 2,
      onClose: function(selectedDate) {
        $(".to_date").datepicker("option", "minDate", selectedDate);
        $(this).parent().next().children().focus();
      }
    });
 $(".to_date").datepicker({
      minDate: '+1D',
      dateFormat: "dd/mm/yy",
      defaultDate: "+1w",
      numberOfMonths: 2
    });

演示:http: //jsfiddle.net/FdfPY/1/

编辑:

如果它是嵌套的,则使用以下内容:

$(".from_date").datepicker({
      minDate: 'D',
      dateFormat: "dd/mm/yy",
      defaultDate: "+1w",
      numberOfMonths: 2,
      onClose: function(selectedDate) {
        $(".to_date").datepicker("option", "minDate", selectedDate);
        $(this).parents('.span2').next().children().find('.to_date').focus();
      }
    });
 $(".to_date").datepicker({
      minDate: '+1D',
      dateFormat: "dd/mm/yy",
      defaultDate: "+1w",
      numberOfMonths: 2
    });

演示:http: //jsfiddle.net/FdfPY/5/

于 2013-03-11T15:49:18.330 回答