我正在寻找一种向 jQuery UI 日期选择器中的日期添加参数的方法。 我正在使用日期选择器来显示类(class)开始日期。我需要的参数是在该特定日期开始的类(class)的 ID。
我正在像这样初始化日期选择器:
$( "#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 数组包含所有启用的日期,日历的其余部分被禁用。此外,我还为每个日期添加了一个包含类(class) ID 的数组。
我认为我需要在enableAllTheseDays函数中进行更改,但我无法弄清楚如何访问底层日期对象,以便我可以将类(class)ID作为属性插入到各个启用的日期中。 这样我就可以在选择日期后将类(class) ID 作为参数传递到输入字段。
感谢您的见解。
最佳答案
这是我对日期选择器使用 onSelect 方法的尝试。
我没有更新基础日期对象,只是向“结果”输入字段添加了一个新的数据属性。选择时,它会搜索名为“类(class)”的对象(代表您的类(class) ID 和日期列表),以查找与所选日期匹配的内容。
使用 firebug/开发人员工具检查输入字段以查看 data-course-id 属性更新。该月的前 3 天有相关类(class)...
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"
});
关于jquery - 将自定义参数添加到 jQuery UI Datepicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18580236/