2011-03-08 4 views
0

onChangeMonthYearコールバック関数が起動されたときに.datepicker('disable')メソッドを使用してインラインdatepickerを無効にしようとしています。
この関数は、AJAX呼び出し(日付のフェッチ)を行い、成功後にdatepickerを有効にします。jQuery UI DatePickerがAJAXコールで無効にする

残念ながら、.datepicker('disable')は決して起きない...

はどうやら、いくつかの深いFirebugので掘った後、内部 _disableDatepickerが呼び出されますが、クラス hasDatePickerは見つかりされることはありませんので、機能が早期に返します。

グローバルオブジェクトにコールバック関数をカプセル化しましたが、これは自分のコードの動作に影響しないようです。

onChangeMonthYearは、3番目のパラメータinstを持っています。これは、datepicker要素を参照することになっています。 $(inst)コールでアクセスします。

あなたがここにhttp://jsbin.com/ahano4/6/edit

答えて

0

影響を与えようとしている実際の要素で有効/無効を呼び出す必要はありませんか?

$(inst).datepicker('disable');//generic and not referring to anything in the DOM 
should be 
$('#calendar').datepicker('disable');//referring to the datepicker object in the DIV with the ID 'calendar' 
+0

'inst'パラメータは何のために良いですか?例えば複数の日付ピッカー?これは動作しているようですが、Chromeがdatepickerを無効にしていないため、ここではChromeがサポートしていません。 – ant1j

0

の完全なコードを見つけるには、削除、コードの一部を使用してgetEventsForDate機能です。

this.getEventsForDate = function(year, month, inst) { 
    ... 
    $(inst).datepicker('disable'); 
    ... 
}; 

そして、ここでDOMあなたは三番目のパラメータとして関数に空のオブジェクト{}を渡すと、それに.datepicker()関数を呼び出している

$(function() { 
    var date = new Date(); 
    Calendar.getEventsForDate(date.getFullYear(), date.getMonth()+1, {}); 
    ... 
}); 

をロードされた後に実行されますあなたのコードです。これは明らかに役に立つものではありません。

+0

私はFatherStormの回答を使用して変更しました。 これは、当月の値を開始することだけでした。 – ant1j

関連する問題