如何动态更改 jquery 日期选择器的选定日期?我说过创建了一个内联日期选择器。然后过了一段时间,我想在那里反映一个不同的日期,而不是从头开始重新创建日期选择器。
我尝试了 setDate 方法,但没有奏效,并且doc中没有太多文档。
这里还有另一个(扩展?)插件,但我想使用 jquery.ui.all.js 附带的插件。
您使用的是什么版本的 jQuery-UI?我已经使用 1.6r6、1.7 和 1.7.1 测试了以下内容,并且可以正常工作:
//Set DatePicker to October 3, 2008
$('#dateselector').datepicker("setDate", new Date(2008,9,03) );
如果设置了 minDate 或 maxDate 选项,请检查您尝试将其设置为的日期是否在允许的日期范围内。
此示例显示如何使用下拉日历中的默认值和文本框中的值。它还显示了如何将默认值设置为上一个日期。
selectedDate 是另一个变量,它保存日历控件的当前选定日期
var date = new Date();
date.setDate(date.getDate() - 1);
$("#datepicker").datepicker({
dateFormat: "yy-mm-dd",
defaultDate: date,
onSelect: function () {
selectedDate = $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate'));
}
});
$("#datepicker").datepicker("setDate", date);
请注意,对于 Keith Wood ( http://keith-wood.name/datepickRef.html ) 的 DatePicker,以下工作 - 请注意,默认日期的设置是最后一个:
$('#datepicker').datepick({
minDate: 0,
maxDate: '+145D',
multiSelect: 7,
renderer: $.datepick.themeRollerRenderer,
***defaultDate: new Date('1 January 2008')***
});
$('.date-pick').datePicker().val(new Date()).trigger('change')
最后,这就是我最近几个小时寻找的东西!我需要启动更改,而不仅仅是在文本字段中设置日期!
出于某种原因,在某些情况下我无法使 setDate 工作。
我发现的一种解决方法是简单地更新给定输入的 value 属性。当然,日期选择器本身不会更新,但如果您只是要显示日期,它可以正常工作。
var date = new Date(2008,9,3);
$("#your-input").val(date.getMonth()+"/"+date.getDate()+"/"+date.getFullYear());
// Will display 9/3/2008 in your #your-input input
这是一个旧线程,但我只想提供一些我如何使用的信息。如果您想设置今天的日期,您可以像下面这样简单地应用它。
$("#datepickerid").datepicker("setDate", "0");
如果您想在当前日期之前/之后设置几天,请使用-/+
您想要多少天的符号符号,如下所示。
$("#datepickerid").datepicker("setDate", "-7");
$("#datepickerid").datepicker("setDate", "+5");
这对我有用:
$("#dateselector").datepicker("option", "defaultDate", new Date(2008,9,3));
setDate 似乎只是 jquery UI 中使用的内联日期选择器的问题,具体错误是 InternalError: too much recursion。
在 Html 中,您可以使用这样的日期选择器添加输入字段
<input class="form-control date-picker fromDates" id="myDate" type="text">
然后在java脚本中,初始化你的日期选择器并将你的值设置为这样的日期,
$('.fromDates').datepicker({
maxDate: '0',
dateFormat: "dd/mm/yy",
changeYear: true,
changeMonth: true,
yearRange: "-100:+0"
});
var myDateVal = moment('${value}').format('DD/MM/YYYY');
$('#myDate').datepicker().datepicker('setDate', myDateVal );
(这里的fromdate属性显示当前日期的前几个日期)
请在下面找到它对设置数据功能有很大帮助
$('#datepicker').datepicker({dateFormat: 'yy-mm-dd'}).datepicker('setDate', '2010-07-25');
var dt = new Date();
var renewal = moment(dt).add(1,'year').format('YYYY-MM-DD');
// moment().add(number, period)
// moment().subtract(number, period)
// period : year, days, hours, months, week...
我在使用 setDate 方法时也遇到了很多麻烦。似乎只适用于 v1。然而,似乎有效的是使用 dpSetSelected 方法:
$("#dateselector").dpSetSelected(new Date(2010, 0, 26).asString());
祝你好运!
或者你可以简单地拥有
$('.date-pick').datePicker().val(new Date()).trigger('change')