5

複数の開始日と終了日を追加できるシステムがあります。つまり、スクリーンショットです。http://screencast.com/t/Q7MHQVLnn4J9

最初の日付を選択すると、onClose イベントが 2 番目の入力の日付を設定し、それを開きます。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個以上あり、最初または2番目のものを編集するときに発生します....閉じると、最後の入力が開きます。

.next('to_date') と closest('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 に答える