【问题标题】:Datepicker default year error日期选择器默认年份错误
【发布时间】:2015-11-13 15:57:01
【问题描述】:

我的日期选择器有一个错误,如果您没有选择或选择年份,例如用户选择May 25, 1935(1935 年是最低的默认年份)。在文本框中,它将显示为 2015/05/25 或 2015 年 5 月 25 日。

这是代码,您可以看到错误。

$(function() {
  var startDate = "1935";
  var endDate = new Date().getFullYear() - 18;
  var interval = startDate + ":" + endDate;
  $("#from2").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    changeYear: true,
    numberOfMonths: 1,
    yearRange: interval,
    onClose: function(selectedDate) {
      $("#to").datepicker("option", "minDate", selectedDate);
    }
  });

  $("#to2").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    changeYear: true,
    numberOfMonths: 1,
    yearRange: '1935:' + (new Date).getFullYear(),
    onClose: function(selectedDate) {
      $("#from2").datepicker("option", "maxDate", selectedDate);
    }
  });
});
<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">

  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
</head>

<body>

  <label for="from">Birthday</label>
  <input type="text" id="from2" name="from">



</body>

</html>

【问题讨论】:

    标签: javascript jquery jquery-ui jquery-ui-datepicker


    【解决方案1】:

    您正在做的是将defaultDate 设置为"+1w",这意味着“将一周添加到今天”。您可能应该执行以下操作:

    defaultDate: "1/1/1935"
    

    或者您可以在实例化 datepicker 后使用正确的 setter 方法设置默认日期:

    $('#my-datepicker').datepicket(/* instantiation options */)
                       .datepicker( "setDate", YOUR_DEFAULT_DATE );  // use setter
    

    以下是两者的示例:

    $(function() {
      var startDate = "1935";
      var endDate = new Date().getFullYear() - 18;
      var interval = startDate + ":" + endDate;
      
      // use default date
      $("#one").datepicker({
        defaultDate: "1/1/1935",  // set default date
        changeMonth: true,
        changeYear: true,
        numberOfMonths: 1,
        yearRange: interval
      });
      
      // use setter
      $("#two").datepicker({
        changeMonth: true,
        changeYear: true,
        numberOfMonths: 1,
        yearRange: interval
      }).datepicker("setDate", "1/1/1935"); // set default date
    
    });
    <!doctype html>
    <html lang="en">
    
    <head>
      <meta charset="utf-8">
    
      <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
      <script src="//code.jquery.com/jquery-1.10.2.js"></script>
      <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
      <link rel="stylesheet" href="/resources/demos/style.css">
    </head>
    
    <body>
    
      <label for="one">Birthday</label>
      <input type="text" id="one" name="one">
    
      <label for="two">Birthday 2</label>
      <input type="text" id="two" name="two">
    
    
    </body>
    
    </html>

    【讨论】:

    • 有没有可能,没有显示默认值?
    • @Vista 没问题,很高兴为您提供帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 2021-03-14
    • 2012-02-05
    • 2018-04-24
    • 2011-10-02
    • 2020-02-07
    相关资源
    最近更新 更多