防止jQuery datepicker自动设置日期

时间:2013-06-30 11:10:29

标签: jquery jquery-ui

我在输入字段下面显示了一个全功能的jQuery日期选择器。

我正在使用以下设置引用该字段:

altField: "#id_of_field",

没有其他设置。 Datepicker已加载文档就绪。

我的问题是今天的日期是在页面加载时自动设置(在输入字段中),忽略字段的状态 - 无论它是否已经从服务器发送了值还是尚未设置。

在用户点击任何日期之前,如何阻止datepicker在输入字段中设置值(通过它自己)?

更新
演示:http://jsfiddle.net/2EYFE/3/

4 个答案:

答案 0 :(得分:2)

使用setDate方法,您可以通过以下方式清除输入字段状态:

$("#myDate").datepicker();
$("#myDate").datepicker('setDate', null);

修改: http://jsfiddle.net/2EYFE/4/

答案 1 :(得分:2)

为什么在创建datepicker时不使用defaultDate选项?这是自己设置默认值的正确方法

http://api.jqueryui.com/datepicker/#option-defaultDate

var myDefaultDate = new Date("October 1, 1975 11:13:00"); // save your default date here

$('#datepicker').datepicker({
    altField: "#event_begin_day",
    defaultDate: myDefaultDate
});

答案 2 :(得分:1)

我曾希望datepicker提供一个设置来关闭自动设置日期,但显然没有。

这是一个有效的解决方案,其他答案也是如此。

我在启动datepicker之前将字段的值存储在变量中,然后将datepicker的value选择替换为变量。

var begin_day_value = $('#event_begin_day').attr('value');

$('#datepicker').datepicker({
    altField: "#event_begin_day"
  }).datepicker('setDate', begin_day_value);

http://jsfiddle.net/2EYFE/5/

答案 3 :(得分:0)

Datapicker为选定的当前日期分配不同的类。您可以从当前日期单元格中删除该类,也可以覆盖它:

当前日期 - ui-state-highlight

选择日期 - ui-state-active

所以,例如:

$("#your_element").datepicker();
$(".ui-datepicker .ui-state-hihglight").removeClass("ui-state-highlight");