49

Bootstrap で jQuery UI を使用してきましたが、これまで経験したことのない問題に遭遇したようです。何が変わったのかわかりません。別のバージョンの jQuery を元に戻そうとしましたが、その間 jQuery UI を更新しませんでした。そのため、何が壊れたのか正確にはわかりません。

日付ピッカーで任意の日付をクリックすると、コンソールから次のエラーが返されます。

Uncaught TypeError: Cannot set property 'currentDay' of undefined 

コードは、datepicker に期待されるようにかなり単純です。

$(".datepicker").datepicker({
dateFormat: 'dd-mm-yy'
}); 

次の HTML を使用します。

<input type="text" class="datepicker" />

これは報告すべきバグですか (他の Google マッチが表示されないため)、それとも私が見逃したものですか?

4

8 に答える 8

144

私は解決策を見つけました。長時間のデバッグの後<div>、まったく同じIDがあり、入力フィールドよりも高い位置にあることがわかりました。したがって、スクリプトは を含む最初のインスタンスをID取得し、フィールドのDIV代わりに を選択しました。input

を削除/名前変更したところDIV、再び正常に機能しました。

于 2013-07-23T09:43:36.070 に答える
2

HTML DOMオブジェクトの新しいIDを作成してこれを解決しました。IDが重複しています。HTML DOM オブジェクトの新しい ID を追加してみてください。

于 2020-06-29T08:10:21.273 に答える
1

セレクターを入れます。

<script>  $("#formID #duplicatedId").datepicker({language: 'he'});
</script>

FormID: 入力を含むフォームの ID。

duplicatedId: 入力要素の ID。

于 2015-10-28T11:23:50.623 に答える
1

私もこのエラーを抱えていました。フォームの他の場所に、フォーム入力の ID と一致しないラベル「for」属性があることがわかりました。これは、datepicker も混乱させる可能性があるようです。それらを修正すると、すべてが正常に機能し、エラーはなくなりました。Andreas のアドバイス (+1!) に従って、フォームを検証してください。Chris Pederick の Web Developer Toolbar を使用すると、簡単に検証できます。

于 2014-10-12T15:57:19.317 に答える
1

私の場合、非表示の入力フィールドに対して div から日付ピッカーをトリガーしていて、getPos(a) が変数「a」で未定義のメッセージを引き起こしていました。非表示の入力フィールドを div の外に移動して実験したところ、うまくいきました。入力フィールドは、どこにいても jQuery によって検出可能であったことに注意してください。これは問題ではありませんでした。配置の問題でした。これが他の誰かに役立つことを願っています。

于 2018-11-14T16:03:48.530 に答える
0

異なるIDのない同じクラスを持つ2つの入力ボックスである可能性があり、そのために日付ピッカーを試しています。そこにある場合は、2 つの異なる ID を指定すると機能します。

于 2015-08-07T10:56:58.590 に答える