JQuery DatePicker无法正常工作

时间:2013-07-04 12:24:27

标签: jquery jquery-ui-datepicker

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

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

2 个答案:

答案 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);