見た目では、これはハッキングなしでは不可能jquery.ui.datepicker.js
です。以下は、そのファイルの縮小されていないバージョンからの抜粋です。
/* Generate the HTML for the current state of the date picker. */
_generateHTML: function(inst) {
var today = new Date();
today = this._daylightSavingAdjust(
new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
上記からわかるようtoday
に、JavaScript の Date オブジェクトから直接計算されるため、その値を渡す方法はありません...現在の日付を変更するのは非常に奇妙な要求であることが主な理由だと思います。
これには 4 つの解決方法があり、そのうち 3 つはあまり良くありません。考慮した順に並べました。1 が最高、4 が最悪/最も複雑です。
参加して、自分の機能を実装/報告することができsetToday
ます - http://bugs.jqueryui.com/
_generateHTML 関数を独自のコードにコピーし、RodrigoCout が述べた方法を使用して拡張できます:
jQuery DatePicker Issue: Set current date
jquery.ui.datepicker.js
コードの代わりに日付を定義できるようにハッキングできますvar today = new Date();
。jQuery UI の次のバージョンにアップグレードする時期になったときに自分 (および他の開発者) に警告するために、アプリケーション内のコメントにこのオーバーライドを明確に書き留めておく必要があります。
datepicker プラグインと一緒に実行する js ハックを構築し、カレンダーを表示するたびに出力を書き換えることができます。つまり、そのクラスを検出$('.ui-datepicker-today')
して削除し、兄弟に沿ってステップ実行してデータ属性をチェックすることにより、配置する場所を再計算します...これは、日付ピッカーの内部計算に影響を与えず、実行が複雑になるため、最悪の方法です。