我在我的网站上使用jQuery DatePicker。我希望在datepicker上有两个下拉列表:一个用于选择月份,一个用于选择年份。因此,我应该写下面的格式:
$('.datepicker').datepicker({
changeMonth: true,
changeYear: true
});
我想让这个选择器可重用,因此我创建了一个函数,它采用如下给出的格式参数:
function RegisterDateTimePicker(options) {
var test = "{" + options + "}";
$('.date').datepicker(test);
}
上面的参数“options”是一个由字符串
组成的变量 "changeMonth: true, changeYear: true"
现在没有显示datepicker。我在调试时得到的错误是:
Uncaught TypeError: Cannot call method 'apply' of undefined
请提供摆脱这个问题的方法?
答案 0 :(得分:4)
选项应该是一个对象,而不是一个字符串。你做错了!
如果options
是一个对象,你可以将函数更改为此(使其工作):
function RegisterDateTimePicker(options) {
$('.date').datepicker(options);
}
但它不是一个对象,它是一个字符串,这是一个坏主意。你应该把它改成一个对象,除非你有一个真的很好的理由将它保持为字符串 - 你应该向我解释之前我可以帮助你。
修改强>: 而不是传入一个字符串,你应该传入一个对象,可能是这样的:
var options = {
changeMonth: true,
changeYear: true
};
//now call your function:
RegisterDateTimePicker(options);
或者你想让你的可恢复功能总是使日期选择器具有相同的选项?然后这样做:
function RegisterDateTimePicker(options) {
var options = {
changeMonth: true,
changeYear: true
};
$('.date').datepicker(options);
}
答案 1 :(得分:0)
你可以这样做:
var options ={changeMonth: true, changeYear: true};
RegisterDateTimePicker(options);