0

我在我的网站中使用 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 

请提供摆脱这个问题的方法?

4

2 回答 2

4

options 应该是一个对象,而不是一个字符串。你这样做是不对的!

如果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);
}
于 2013-07-04T12:27:58.200 回答
0

你可以这样做:

var options ={changeMonth: true, changeYear: true};
RegisterDateTimePicker(options);
于 2013-07-04T12:34:12.673 回答