2012-01-09 5 views
5

ページがロードされたときにdatepickerフィールドとaltFieldの値を設定したいのですが、datepickerに自動的に行うオプションがあるかどうか疑問に思っていました。 と呼んでください)。 date-divdivされた状態で選択した日付を自動的にaltFieldに設定します。

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:+7}); 

ページがロードされると、デフォルトの日付が自動的にdate-inputフィールドに追加されます。

は、私はこのような何かをすればことを知っています。 しかし、divの代わりにテキストフィールドを使用すると、自動的に値が設定されません(私はsetDateを別の行に呼び出す必要があります)。

私はちょうどこれについて興味があります、私はすでにsetDateを呼び出して実装していますが、自動的に何かがあるのか​​どうか、なぜそうでないのか知りたいですか? (これは、カレンダーを表示するためにdivを使用するときに機能するためです)。

答えて

-2

それは繰り返しを必要とするが、それは私の作品として100%エレガントない:

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:$("#date-input").val()}); 
+0

あなたの答えは、動作するようには思えません。おそらく、形式が –

+1

-1の違いがあるため、これは 'altFormat'が' dateFormat'([docs](http://api.jqueryui.com/datepicker/#utility-formatDate))と同じ場合にのみ機能します。 – Stijn

+0

追加条件の下で動作する場合は、なぜそれをdownvotedですか?私は仕事の解決策を提示して処罰されることを理解していません – Kodak

0

のための理由は、ブラウザの実装defaultDateを設定するための最善の策は、Moment.jsのようなライブラリをaltFieldの値を解析することです解析日は信頼できません。カレンダーを開いたときにのみデフォルト選択した日付を設定します

$(this).datepicker({ 
    altField: $(this).prev(), 
    altFormat: $.datepicker.ISO_8601, 
    defaultDate: moment($(this).prev().val()).toDate() 
}); 

:あなたのaltFieldは、あなたのDatePickerのフィールドの前のフィールドであり、それはISO 8601形式でだ場合たとえば、あなたはこれを行うことができます。あなたはまた、DatePickerのフィールドを移入したい場合は、上記のコードで日付ピッカーを初期化した後、これを行うことができます。

$(this).datepicker("setDate", moment($(this).prev().val()).toDate());