无法使用 jquery ui 的日期选择器设置默认日期

unable to set default date with jquery ui's datepicker

我的HTML:

<input type="text" name="day" id="date">

我的Javascript:

$(function() {
    $('#date').datepicker({
        'dateFormat': 'yy-mm-dd',
        'defaultDate': '2015-12-18'
     });
});

#date 文本框正在转换为日期选择器,因此可以正常工作。格式是我告诉它的格式。但是默认日期选项似乎没有做任何事情。

在此示例中,我希望在首次加载页面时文本框显示为“2015-12-18”。如果我单击文本框,将出现日期选择器对话框,我可以输入不同的日期,但在我完成之前应该显示“2015-12-18”的日期。但事实并非如此,我不明白为什么。

我的 JS Fiddle:

https://jsfiddle.net/18000rLe/4/

你可以使用它,它会给你日期:)

$(function() {
var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth()+1; //January is 0!
    var yyyy = today.getFullYear();
    if(dd < 10) {
        dd = '0' + dd;
    } 
    if (mm < 10) {
        mm = '0' + mm;
    } 
    today = yyyy + '-' + mm + '-' + dd;  
    $('#date').val(today);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="day" id="date">

你可以这样应用:

$(function() {
    $('#date').datepicker({
        'dateFormat': 'yy-mm-dd',
      //'defaultDate': +7
      //'defaultDate': new Date(1985, 00, 01),
      'defaultDate': '2015-12-18'
     }).datepicker("setDate",new Date());
});

试试这个。

有几件事要记住 -->

1. defaultDate 选项会将日期设置在 datepicker calender 中,而不是 input 字段中。为此,您需要显式定义 setDate
2. 如果您在 datepicker 中使用 'setDate',则不需要像 datepicker 那样添加 defaultDate自动从 input 字段中选择日期。

  $(function() {
        $("#date").datepicker({dateFormat: 'yy-mm-dd'});
        $("#date").datepicker('setDate', new Date('2014-12-18')); 
    }); 

示例:http://jsfiddle.net/DinoMyte/tXyLn/527/

我必须以这种方式传递日期而不是 Date 对象:

$('#date input').datepicker({
  'defaultDate': {
    year: 1999,
    month: 11,
    day: 31
 });