JQuery UI日期选择器:在选择出发日期时自动弹出返回日期

JQuery UI Datepicker: auto-popup return date on selection of departure date

本文关键字:日期 返回 选择 选择器 UI JQuery 出发      更新时间:2023-09-26

我有两个输入字段,用户可以在其中指定出发和返回日期。

我试图实现这样一种情况,即当用户选择出发日期时,日期选择器会自动弹出返回日期。

以下是我目前所拥有的,但不起作用。

HTML:

<input id="departure-date" type="text">
<input id="return-date" type="text">

(JQuery)Javascript:

$(function() {
   $('#departure-date').datepicker({
      numberOfMonths: 2,
      showAnim: "fold",
      showButtonPanel: true,
      onSelect: (function(){ 
        this.val(date.toLocaleDateString());
        $('#return-date').focus();  
      })
   });
   $('#return-date').datepicker({
      numberOfMonths: 2,
      showAnim: "fold",
      showButtonPanel: true,
      onSelect: (function(){ 
        this.val(date.toLocaleDateString());    
      })
   });
});

任何关于我如何让它发挥作用的想法都将不胜感激。

您可以尝试类似的东西

$(function() {
  $('#departure-date').datepicker({
    numberOfMonths: 2,
    showAnim: "fold",
    showButtonPanel: true,
    onSelect: (function(date) {
      setTimeout(function() {
        $('#return-date').datepicker('show');
      }, 300)
      $(this).val($(this).datepicker('getDate').toLocaleDateString());
    })
  });
  $('#return-date').datepicker({
    numberOfMonths: 2,
    showAnim: "fold",
    showButtonPanel: true,
    onSelect: (function(date) {
      $(this).val($(this).datepicker('getDate').toLocaleDateString());
    })
  });
});
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/redmond/jquery-ui.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.js"></script>
<input id="departure-date" type="text">
<input id="return-date" type="text">

演示:Fiddle

只要值发生变化,就不需要设置日期选择器的值。

$(function() {
   $('#departure-date').datepicker({
      numberOfMonths: 2,
      showAnim: "fold",
      showButtonPanel: true,
      onSelect: (function(){ 
        $('#return-date').focus();  
      })
   });
   $('#return-date').datepicker({
      numberOfMonths: 2,
      showAnim: "fold",
      showButtonPanel: true,
      onSelect: (function(){ 
      })
   });
});