在特定月份打开jquery datepicker

时间:2018-10-26 08:26:31

标签: jquery datepicker

我有两个jquery datepicket,可以选择一个日期作为开始和结束时间。当用户选择起始日期时,我希望至日期将获得默认日期至起始日期+ 6天。如果我使用datepicker setDate设置截止日期,则它会起作用,但是它将填充表单中的直到输入字段。我不希望该字段自动填写,但是只是当用户单击以打开“直到日历”时,才选择日期,并在正确的月份中打开日历。我认为可以使用defaultDate来完成此操作,但是它对我不起作用。

看一个小例子:

var defaultUntil = new Date(since);
defaultUntil.setDate(defaultUntil.getDate() + 6);
$('#until').datepicker("setDate", defaultUntil );

但是,这不起作用:

var defaultUntil = new Date(since);
defaultUntil.setDate(defaultUntil.getDate() + 6);
$('#until').datepicker("setDefaultDate", defaultUntil );

编辑: 根据@extempl的评论,我也尝试过:

var defaultUntil = new Date(since);
defaultUntil.setDate(defaultUntil.getDate() + 6);
$('#until').datepicker("defaultDate", defaultUntil );

这都不起作用。我认为defaultDate仅适用于init变量。否则,必须使用setDate。但是,这不是我所需要的,因为我不想在输入字段中设置日期。 我曾在初始化中尝试过defaultDate:defaultDate: +30,,但是它可以工作,但是我需要在setDefaultDate之前应用逻辑,因此我有两种选择: 1.能够在逻辑中而不是在init中设置defaultDate。 2.能够在init中执行类似于defaultDate:function()的操作,并计算函数内部的值。可能吗?目前不为我工作。

请注意,由于这个原因,这与您建议的其他帖子没有重复。

1 个答案:

答案 0 :(得分:1)

要在初始化中设置defaultDate,请使用

$('#until').datepicker({defaultDate: defaultUntil} )

要稍后进行更新,您应该使用

$('#until').datepicker( "option", "defaultDate", defaultUntil );

Reference

如果在日期选择器已经打开的情况下更新选项,则应使用refresh方法。