2011-01-17 19 views
3

altフィールドが更新されない入力フィールドでユーザーが日付を直接変更する問題があります。 altフィールドが更新される唯一の時間は、カレンダーを使用して特定の日を選択する場合です。Jquery UI datepicker plugin - altフィールドを変更するには?

コード例:

$this 
.find('#'+strInputID) 
.datepicker({altField: '#alt_'+strInputID, altFormat: 'dd/mm/yy', minDate: new Date()}) 
.datepicker("setDate" , dDfltDate); 

私はローカライズに応じて、入力フィールドの変更のでaltFormatを使用していますので、入力が変化した時はいつでも私が直接渡って値をコピーすることはできませんのでご注意ください。

Jquery Datepickerにはこれが許可されていますか?

ここではイベントリストは、私が欲しいものを持っていません:http://jqueryui.com/demos/datepicker/

誰もが、これは修正される可能性がどのようにすべての答えを持っていますか?

EDIT: この例http://jqueryui.com/demos/datepicker/#alt-field 作品、私はしませんでした別の例を見つけました。私たちが1.8.7ではなくv1.7.3を使用しているので、これが問題であると推測できます。

私はアップグレードできませんので、引き続きテストを行い、これが当てはまるかどうかを確認します。誰かがそれ以外のことを知っているなら、私に知らせてください。おかげ

+0

私は、 "手動入力とフィールド/代替フィールドの同期"に使用されている1.8.8 jquery.ui.datepickerの中に_doKeyUp関数を発見しました。これは私が後にしたものです。誰かがどのように私が – Pricey

答えて

2

は、私はそれは、入力フィールドのkeyUpイベントに上1.8.8 DatePickerのコードを上のボルト締め作業を得ることができたが、これはエレガントなアプローチではありません:(他の提案は歓迎されている。おかげで

var inputField = $this.find('#'+strInputID); 
inputField.datepicker({altField: '#alt_'+strInputID, altFormat: 'dd/mm/yy', minDate: new Date()}).datepicker("setDate", dDfltDate); 
inputField.keyup(function (event) { 
    var inst = $.datepicker._getInst(event.target); 
    if (inst.input.val() != inst.lastVal) { 
     try { 
      var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), 
       (inst.input ? inst.input.val() : null), 
       $.datepicker._getFormatConfig(inst)); 
      if (date) { // only if valid 
       $.datepicker._setDateFromField(inst); 
       $.datepicker._updateAlternate(inst); 
       $.datepicker._updateDatepicker(inst); 
      } 
     } 
     catch (event) { 
      $.datepicker.log(event); 
     } 
    } 
}); 
+0

自分の質問に答えて、最良の方法はJqueryのUIをアップグレードすることです1.8.8はjQuery 1.3.2+のために安定です – Pricey

関連する問題