首页 > 解决方案 > jQuery Datepicker 预选日期

问题描述

我正在开发一个使用日期选择器的遗留项目,如下所示:

<script>
     DateInput('date', true, 'DD-MM-YYYY')
</script>

如果我想预先选择一个日期,我只需提供一个字符串作为第四个参数:

DateInput('date', true, 'DD-MM-YYYY', '01-01-2015')

就我而言,我想设置点击事件的日期:

$('.edit-news').click(function(){
    ....
    var date = $(this).data("date");
    ....
}

但是我怎样才能将值传递给脚本标签。datepicker 插件已经很老了,所以也许我的用例超出了可能?

链接到文档:

http://dynamicdrive.com/dynamicindex7/jasoncalendar.htm

标签: jquerydatepicker

解决方案


考虑以下代码:

$(function() {
  function getDateText() {
    var dt = new Date();
    return [
      dt.getDate(),
      dt.getMonth(),
      dt.getFullYear()
    ];
  }

  $(".edit_news").click(function() {
    var nowDate = getDateText();
    $("#eg4_Month_ID").val(nowDate[1]).trigger("change");
    $("#eg4_Day_ID").val(nowDate[0]).trigger("change");
    $("#eg4_Year_ID").val(nowDate[2]).trigger("change");
  });
});

这基于以下示例脚本:http ://dynamicdrive.com/dynamicindex7/jasoncalendar.htm

DateInput('date', true, 'DD-MM-YYYY', '01-01-2015');

所以初始插件不提供初始化后修改默认日期的选项。如果您想以编程方式在click事件上设置日期,则可以使用上面的代码。您需要修复它以匹配在您的页面中创建的 ID 或类。

我们设置该值,然后使用它.trigger()来触发元素上的更改事件。这有助于主脚本正确跟踪更改。

我无法正确测试它,因为您没有提供完整的示例并且插件似乎没有 CDN。

就个人而言,我会考虑切换到现代插件,例如 jQuery UI Datepicker:https ://jqueryui.com/datepicker/


推荐阅读