我正在使用bootstrap datepicker以及行高图 .
我希望在缩放图表时更新datepicker日期 . 一旦该事件触发,我就会更新datepicker的值 . 值更新正常,但单击日历时,弹出日历上的日期仍为旧日期 .
这是我的日期选择器:
<div class="input-append date pull-right" id="dpStartDate" data-date="@DateTime.Now.AddMonths(-1).ToString("dd/MM/yyyy")" data-date-format="dd/mm/yyyy">
<input class="span2" id="startDateText" size="16" type="text" value="@DateTime.Now.AddMonths(-1).ToString("dd/MM/yyyy")" readonly="">
<span class="add-on"><i class="icon-th"></i></span>
</div>
我尝试使用此代码更新值:
$('#dpStartDate').attr('data-date', startDate);
$('#startDateText').attr('value', startDate);
它会更新日期,但不会设置日历 .
我也试过触发onChange事件,它也会更新日期而不是日历:
$('#dpStartDate').trigger('changeDate', startDate);
$('#dpStartDate').datepicker()
.on('show', function (ev) {
ev.stopPropagation();
})
.on('changeDate', function (ev, date) {
var startDate = new Date();
if (date != undefined) {
startDate = date;
$('#dpStartDate').attr('data-date', startDate);
$('#startDateText').attr('value', startDate);
}
else {
startDate = ev.date;
$('#dpStartDate').attr(startDate.getDate() + '/' + (startDate.getMonth() + 1) + '/' + startDate.getFullYear());
$('#startDateText').attr(startDate.getDate() + '/' + (startDate.getMonth() + 1) + '/' + startDate.getFullYear());
}
$('#dpStartDate').datepicker('hide');
ev.stopPropagation();
});
有谁知道是否甚至可以像这样更新日历?
谢谢
19 回答
这适合我
其他方式
在属性data-date上设置日历日期
更新(必填)
设置输入值(记住输入是datepicker的子项) .
这样你就把日期设置为'2012-08-08'
试试这段代码,
这将更新日期并应用格式
dd/mm/yyyy
.这对我有用,
更好用:
代替
如果使用update,则不会触发事件changeDate .
我必须做'setValue'和'update'才能让它完全运行
这确实有效 .
简单,
容易明白,
设置和更新插件的单一方法对我有用 .
其他更新方式
别忘了手动调用
update
.对于datetimepickers,我可以使用这个工作
对于 Bootstrap 4
如果您在Bootstrap中使用输入组,则需要将新日期附加到文本框的父级,否则如果单击日历图标并单击外部日期将被清除 .
您需要将日期设置为
input-group.date
.还要检查datepicker update方法
这对我有用:
使用其他答案的方法时,配置的选项会丢失,要更正它,您可以使用全局配置:
现在您可以使用更新方法而不会丢失选项:
你也可以这样做:
http://bootstrap-datepicker.readthedocs.org/en/latest/options.html#format
您可以使用以下简单方法:
如果您正在使用Bootstrap DatePicker version 4+
要设置日期值,您的代码应该是
@Imran的答案适用于文本框
将datepicker应用于div使用此:
逗号分隔多个日期:
像这样的简单方法(一行)
如果您参考https://github.com/smalot/bootstrap-datetimepicker您需要通过以下方式设置日期值:$('#datetimepicker1').data('datetimepicker') . setDate(new Date(value));