0

Web サイトでjQuery DatePickerを使用しています。datepicker に 2 つのドロップダウンが必要です。1 つは月を選択するためのもので、もう 1 つは年を選択するためのものです。したがって、次の形式で書く必要があります。

     $('.datepicker').datepicker({ 
     changeMonth: true,
    changeYear: true
});

このピッカーを再利用可能にしたいので、以下のようなフォーマットパラメータを取る関数を作ります:

    function RegisterDateTimePicker(options) {

var test = "{" + options + "}";

$('.date').datepicker(test);
}

上記のパラメータ「オプション」は、文字列で構成される変数です

    "changeMonth: true, changeYear: true"

現在、日付ピッカーは表示されていません。デバッグ中に発生するエラーは次のとおりです。

    Uncaught TypeError: Cannot call method 'apply' of undefined 

この問題を解決する方法を教えてください。

4

2 に答える 2

4

options は、文字列ではなくオブジェクトである必要があります。それは間違っている!

オブジェクトの場合options、関数を次のように変更できます (機能させるため):

function RegisterDateTimePicker(options) {
  $('.date').datepicker(options);
}

しかし、これはオブジェクトではなく文字列であり、これは悪い考えです。文字列として保持する本当に正当な理由がない限り、オブジェクトに変更する必要があります-これ以上お手伝いする前に、説明してください。

edit : 文字列を渡す代わりに、おそらく次のようにオブジェクトを渡す必要があります:

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 に答える