0

jQuery DatePicker を使用して、出発日が到着日の少なくとも 1 日後であることを確認したいと思います。これに最も近いのは、出発日が到着日と同じ日であることを確認することです (JS で「selectedDate + 1 日」を追加する方法がわかりませんでした)。これについて何か助けていただければ幸いです、ありがとう。

ここに私のJSがあります:

$(".datepicker_arrival").datepicker({
  dateFormat: 'dd/mm/yy',
  minDate: new Date(),
  onSelect: function(dateText, inst) {
    if($('.datepicker_departure').val() == '') {
      var current_date = $.datepicker.parseDate('dd/mm/yy', dateText);
      current_date.setDate(current_date.getDate()+1);
      $('.datepicker_departure').datepicker('setDate', current_date);
    }
  },
  onClose: function( selectedDate ) {
    $( ".datepicker_departure" ).datepicker( "option", "minDate", selectedDate );
  }
});

$(".datepicker_departure").datepicker({
  dateFormat: 'dd/mm/yy',
  minDate: new Date(),
  onClose: function( selectedDate ) {
    $( ".datepicker_arrival" ).datepicker( "option", "maxDate", selectedDate );
  }
});

ここに私のHTMLがあります:

<input type="text" name="arrival" class="datepicker datepicker_arrival textfield" placeholder="Arrival Date" />

<input type="text" name="departure" class="datepicker datepicker_departure textfield" placeholder="Departure Date" />
4

1 に答える 1

2

onClose メソッドで datepicker オブジェクトを渡すことができます。

http://api.jqueryui.com/datepicker/#option-on閉じる

したがって、これはうまくいくはずです:

$(".datepicker_arrival").datepicker({
  dateFormat: 'dd/mm/yy',
  minDate: new Date(),
  onSelect: function(dateText, inst) {
    if($('.datepicker_departure').val() == '') {
      var current_date = $.datepicker.parseDate('dd/mm/yy', dateText);
      current_date.setDate(current_date.getDate()+1);
      $('.datepicker_departure').datepicker('setDate', current_date);
    }
  },
  onClose: function( selectedDate, test) {
     var  MyDateString = ('0' + (parseInt(test.selectedDay)+1)).slice(-2) + '/'
             + ('0' + (test.selectedMonth+1)).slice(-2) + '/'
             + test.selectedYear;
      $( ".datepicker_departure" ).datepicker( "option", "minDate", MyDateString);
  }
});

フィドル:

http://jsfiddle.net/SpAm/9mSxk/1/

パディングのアイデアの功績は、このスレッドで user113716 によって受け入れられた回答から得られます。

Javascriptは日付に先行ゼロを追加します

于 2013-04-19T15:45:31.093 に答える