我正在寻找一种方法来向jQuery UI Datepicker中的日期添加参数。 我正在使用Datepicker来显示课程开始日期。我需要的参数将是在特定日期开始的课程的ID。
我正在初始化datepicker,如下所示:
$( "#datepicker" ).datepicker({
dateFormat: 'dd-mm-yy',
showWeek: true,
firstDay: 1,
numberOfMonths: 3,
beforeShowDay: enableAllTheseDays
});
函数enableAllTheseDays如下所示:
function enableAllTheseDays(date) {
var m = ('0'+parseInt(date.getMonth()+1)).slice(-2),
d = ('0'+date.getDate()).slice(-2),
i y = date.getFullYear();
for (i = 0; i < enabledDays.length; i++) {
if($.inArray((d + '-' + (m) + '-' + y).toString(),enabledDays) != -1) {
return [true];
}
}
return [false];
}
enabledDays数组包含所有已启用的日期,其余日历已禁用。另外,我在每个日期添加了一个包含课程ID的数组。
我想我需要在enableAllTheseDays函数中进行更改,但我无法弄清楚如何访问基础日期对象,以便我可以将课程ID作为属性插入到各个启用日期。 这样我可以在选择日期后将课程id作为参数传递给输入字段。
感谢您的任何见解。
答案 0 :(得分:2)
继承我尝试使用onSelect方法进行datepicker。
我没有更新基础Date对象,只是在“Result”输入字段中添加了一个新的数据属性。在选择时,它会搜索名为courses(表示课程ID和日期列表)的对象,以查找所选日期的匹配项。
使用firebug / developer工具检查输入字段,以查看data-course-id属性更新。本月前3天有相关课程......
http://jsfiddle.net/Seandeburca/qbLwD/
var input = $("#datepicker");
var result = $("#result");
var courses = {
"01-09-2013" : "javascript",
"02-09-2013" : "history",
"03-09-2013" : "biology",
"10-09-2013": "physics"
};
input.datepicker({
dateFormat: 'dd-mm-yy',
showWeek: true,
firstDay: 1,
numberOfMonths: 3,
onSelect: function(dateText, pickerObj){
result.attr("data-course-id", courses[dateText]);
course.innerHTML = courses[dateText];
},
altField: "#result"
});