2

我一直在尝试为 datepicker 创建一个 jQuery UI 函数,在阅读了所有论坛和片段后,我意识到绝大多数答案已被弃用和/或从 jQuery 1.9.1 中删除。

非常简单,我需要 jquery datepicker

显示带有按钮选项的日期选择器,并且能够单击今天,这将自动将日期输入到我的输入字段中。对于我的生活,我无法弄清楚这一点,并想把它扔给更了解 jQuery/jQuery-UI 的人。

曾尝试过类似的东西:

$(function() {
    $( "#date" ).datepicker(("setDate", new Date()){
        showButtonPanel: true,
        dateFormat: 'm-d-yy'
    });
  });

当然还有 html

  <input name="date" id="date" />

输入的值应为标准美国日期格式:即 5/1/2013 或 12/31/2099。

截至目前,代码并没有选择当前日期,显然点击今天只会选择今天的日期。我需要它来自动填充输入字段。预先感谢您的帮助!

4

2 回答 2

2

我为您创建了一个示例 1,它认为可以涵盖您所要求的内容。

编辑:更新了示例 2并删除了初始日期选择。现在它开始时没有任何选定的日期。

HTML

<p>Date: <input type="text" id="datepicker" /></p>

JS(不要忘记你包括 jQuery UI 1.9.2 和 jQuery )

var $datepicker = $("#datepicker");
$datepicker.datepicker({
        showButtonPanel: true,
        dateFormat: 'm-d-yy'
    });
$datepicker.datepicker('setDate');
于 2013-05-03T05:55:24.393 回答
2

我认为问题在于我们大多数人(我也是)误解了“今天”按钮的功能。事实上,它只是一个突出当前日期而不是选择它的按钮。

如果您确实想要用户点击今天并且日期选择器选择当前日期的行为,我建议您查看我创建的jsfiddle 。

因为这不是我的工作,我只是做了一些研究(目前也在使用 datepicker),所以我请参考这个解决方案,它与 jQuery 1.9.1 和 jQuery UI 1.9.2 完美搭配。

这是解决您问题的代码

$.datepicker._gotoToday = function (id) {
    var target = $(id);
    var inst = this._getInst(target[0]);
    if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
        inst.selectedDay = inst.currentDay;
        inst.drawMonth = inst.selectedMonth = inst.currentMonth;
        inst.drawYear = inst.selectedYear = inst.currentYear;
    } else {
        var date = new Date();
        inst.selectedDay = date.getDate();
        inst.drawMonth = inst.selectedMonth = date.getMonth();
        inst.drawYear = inst.selectedYear = date.getFullYear();
        // the below two lines are new
        this._setDateDatepicker(target, date);
        this._selectDate(id, this._getDateDatepicker(target));
    }
    this._notifyChange(inst);
    this._adjustDate(target);
}

我希望这可以帮助你:)

编辑

要使用当前日期预填充输入字段,您需要使用setDate方法。更新的小提琴

$('#datepicker').datepicker('setDate', new Date());
于 2013-05-03T15:24:44.893 回答