2012-02-22 14 views
1

私は週に数日しか有効にする方法をさまよっていましたか?たとえば、月曜日の水曜日と木曜日を有効にし、残りの日を特定の月に特定の月に無効にする方法を教えてください。DatePickerで日付を選択できないようにする方法はありますか?

私はsetDate(DateOption dateOption),setMaxDate(DateOption dateOption)およびsetMinDate(DateOption dateOption)と遊んでいますが、結果はありません。

ありがとうございます。

答えて

1

AFAIKこれは、デフォルトのjQueryのdatepickerでは実行できません。

私は最近、自分自身でこの問題に遭遇しました。デフォルトのjQueryのdatepickerを使用して解決策を見つけることができませんでした。代わりに、http://keith-wood.name/datepick.htmlを使用して独自のwiQueryプラグインを作成しました。もう少し作業が必要ですが、wiQueryコードを調べることで、この代替の日付ピッカーを動作させるためにエミュレートする必要のあるクラスを見つけることができます。

は私がコピーされた:

  • DatePickerOptions
  • 日付ピッカー
  • DatePickerJavascriptResourceReference
  • JsScopeUiDatePickerOnChange org.odlabs.wiquery.ui.datepickerから

.classes。

これらのクラス名の先頭に「Multi」を追加し、設定とコールバックオプションの参照ガイドをhttp://keith-wood.name/datepickRef.htmlで使用しました(最初のリンクからクイックリファレンスをクリックすると、新しく作成したMultiDatePickerクラスで正しいjavascriptを生成できるようにします。

public JsStatement statement() { 
    return new JsQuery(this).$().chain("datepicker", 
      options.getOptions().getJavaScriptOptions()); 
} 

次のJavaScriptを作成するために使用されています:私の選択したオプションは、中括弧内にある

(function($) { 
$(document).ready(function() {$('#startDate').datepicker({defaultDate: '+1', minDate: '+1', showOn: 'both', buttonImageOnly: true, buttonImage: '/Calendar.png'}); 
}); 
})(jQuery); 

を(

例えば

は、日付ピッカーでは、デフォルトでは、次のコードがあります)。

私はに私のMultiDatePicker.javaでこれを変更する:私はラインに置か

public JsStatement statement() 
{ 
    return new JsQuery(this).$().chain("datepick", options.getOptions().getJavaScriptOptions()); 
} 

:私のmultiDatePickerOptionsに

public void setMultiSelect(int i) 
{ 
    put("multiSelect", i); 
} 

public int getMultiSelect() 
{ 
    return getInt("multiSelect"); 
} 

を、そしてこれらを設定MultiDatePickerクラスのいくつかのダムゲッターとセッターオプションを使用すると、設定できる日付の数を設定できます。このすべてを行うことで、私はそれから行うことができました:

$('#startDate').datepick({multiSelect: 999, showTrigger: '/Calendar.png', dateFormat: 'dd/mm/yyyy', onDate: function(date, current) { /*I used this callback function to only allow certain dates to be selected by the user.*/}}); 

幸運:次のJavaScriptコードを生成し

MultiDatePicker multiDatePicker = new MultiDatePicker("datePicker"); 
multiDatePicker.setMultiSelect(2); 
add(multiDatePicker);