我正在使用jquery datepicker,我正在调用一个名为customRange的自定义函数。
没有这个功能,datepicker绝对可以。
运行该功能后,我收到错误:
if ($("#EndDate").datepicker("getDate") != null) {
“Microsoft JScript运行时错误:对象不支持属性或方法'datepicker'”
为什么会这样?
$('#StartDate, #EndDate').datepicker({
//dateFormat: 'dd/mm/yy',
hourMin: 9,
hourMax: 17,
//minDate: '0',
beforeShowDay: $.datepicker.noWeekends,
beforeShow: customRange,
firstDay: 1,
changeFirstDay: false,
});
function customRange(input) {
var min = new Date(2008, 11 - 1, 1), //Set this to your absolute minimum date
dateMin = min,
dateMax = null,
dayRange = 6; // Set this to the range of days you want to restrict to
if (input.id === "StartDate") {
if ($("#EndDate").datepicker("getDate") != null) {
dateMax = $("#EndDate").datepicker("getDate");
dateMin = $("#EndDate").datepicker("getDate");
dateMin.setDate(dateMin.getDate() - dayRange);
if (dateMin < min) {
dateMin = min;
}
}
else {
dateMax = new Date; //Set this to your absolute maximum date
}
}
else if (input.id === "EndDate") {
dateMax = new Date; //Set this to your absolute maximum date
if ($("#StartDate").datepicker("getDate") != null) {
dateMin = $("#StartDate").datepicker("getDate");
var rangeMax = new Date(dateMin.getFullYear(), dateMin.getMonth(), dateMin.getDate() + dayRange);
if (rangeMax < dateMax) {
dateMax = rangeMax;
}
}
}
return {
minDate: dateMin,
maxDate: dateMax
};
}
答案 0 :(得分:0)
如果尚未完成(无法从您的代码中判断),您的jQuery应该包含在文档就绪事件中,以确保它在文档准备好后运行。
较新的语法是:
$(function(){
$('#StartDate, #EndDate').datepicker({
//dateFormat: 'dd/mm/yy',
hourMin: 9,
hourMax: 17,
//minDate: '0',
beforeShowDay: $.datepicker.noWeekends,
beforeShow: customRange,
firstDay: 1,
changeFirstDay: false,
});
});
否则beforeShow
触发太早,没有任何东西(包括jQueryUI)可以使用。
这个JSFiddle似乎可以正常使用你现有的代码(包装在启动时):
您是否按正确的顺序包含了jQuery和jQuery UI? (jQuery第一)。
答案 1 :(得分:0)
我希望现在还为时不晚: - )
this链接非常有用 -