我正在使用Bootstrap Datapicker脚本(链接here),并且在设置开始日期时遇到问题。
选项:startDate
日期或字符串。默认值:开始时间
可以选择的最早日期;所有更早的日期将被禁用。
日期应为当地时区。字符串必须可以用format
解析。
JavaScript:
function initializeDatePicker() {
if ($.isFunction($.fn.datepicker)) {
var datepickerLang = lang;
if (datepickerLang === "nl") {
datepickerLang = "nl-BE";
}
$(".input-group.date input").datepicker({
autoclose: true,
todayBtn: "linked",
clearBtn: true,
todayHighlight: true,
language: datepickerLang,
format: "dd-mm-yyyy",
startDate: $(this).data("startdate")
});
}
}
HTML:
<div class="input-group date small">
<input id="StartDate" class="form-control" name="StartDate" value="" data-is-required="True" data-startdate="01-12-2016" type="text">
<div class="input-group-addon">
<span class="fa fa-calendar"></span>
</div>
</div>
有什么用?
如果我将
startdate
硬编码为:startDate: new Date() => today
startDate: "01-12-2016"
什么不起作用?
如果我尝试从数据属性中获取日期,则无济于事。
startDate: new Date($(this).data("startdate")) => returns 'Date Invalid'
startDate: $(this).data("startdate")
我不明白哪里出了问题以及如何解决。
最佳答案
问题是您正在使用
$(this).data("startdate")
在这种情况下,“ this”设置为文档,因此它将返回null / undefined。
您需要做的就是将其更改为此
$("#StartDate").data("startdate")
- - - - - - - - 编辑 - - - - - - - -
如果要在页面上使用一次但有多个日期选择器,则可以使用数据属性insead,因此从选项中删除startDate
$(".input-group.date input").datepicker({
autoclose: true,
todayBtn: "linked",
clearBtn: true,
todayHighlight: true,
language: datepickerLang,
format: "dd-mm-yyyy",
});
并在您的html中的datapickers上添加此属性
data-date-start-date="01-12-2016"