BootstrapでjQuery UIを使用してきましたが、これまでになかった問題に遭遇したようです。何が変わったのかわかりません。 jQueryのバージョンであり、その間jQuery UIを更新しなかったため、何が壊れたのか正確にはわかりません。
Datepickerで日付をクリックすると、コンソールからエラーが返されます。
Uncaught TypeError: Cannot set property 'currentDay' of undefined
日付ピッカーから予想されるように、コードはかなり簡単です。
$(".datepicker").datepicker({
dateFormat: 'dd-mm-yy'
});
次のHTMLを使用します。
<input type="text" class="datepicker" />
これは報告する必要のあるバグですか(他のGoogleの一致が表示されないため)、または私が見逃した他の何かですか?
私は解決策を見つけました。長時間のデバッグの後、<div>
がまったく同じID
を持ち、入力フィールドよりも上にあります。したがって、スクリプトはID
を含む最初のインスタンスを取得し、DIV
フィールドではなくinput
フィールドを選択しました。
DIV
を削除/名前を変更すると、再び正常に機能しました。
上記のjQuery datepickerエラーは通常、idを使用するか、cssクラスやフィールド名などの別のセレクターを使用してインスタンス化するかに関係なく、同じIDを持つコントロールが重複しているために発生します。
セレクターを配置します。
<script> $("#formID #duplicatedId").datepicker({language: 'he'});
</script>
FormID:入力を含むフォームのID。
duplicatedId:入力要素のID。
私の場合、私はdivから非表示の入力フィールドに対してdatepickerをトリガーしていましたが、getPos(a)は変数「a」で未定義のメッセージを引き起こしていました。隠し入力フィールドをdivの外側に移動する実験を行ったところ、うまくいきました。入力フィールドは、jQueryがどこにいても検索可能であることに注意してください。したがって、それは問題ではなく、位置決めに関係していました。これが他の誰かに役立つことを願っています。
このエラーも発生していました。フォームの他の場所に、フォーム入力のIDと一致しないラベル「for」属性があったことがわかりました-これもdatepickerを混乱させるようです。それらを修正すると、すべてが正常に機能し、エラーはなくなりました。 Andreasのアドバイス(そのために+1!)を取り、フォームを検証します-Chris PederickのWeb Developer Toolbarは、あなたが行くときに検証する簡単な方法を提供します。
異なるIDを持たない同じクラスを持つ2つの入力ボックスがあり、そのために日付選択を試みています。存在する場合は、2つの異なるIDを指定すると機能します。
私もこの問題に遭遇しました、そして、私は重複IDを使用しなかったことを100%確信しました。いくつかのデバッグの後、私は理由を見つけました-私はtfootの内容を複製するDataTables modを使用していたので、datepicker要素の正確なコピーを作成しました。そして、私はこの日付ピッカー入力をtfoot行に入れました。
次の問題を修正しました。
table.find("TFOOT").find("TR:first").remove();
これはAFTER table.DataTable(....)と呼ばれます
これにより、すべてのコンテンツを含む元の高さゼロの行が削除されました。