AFAIK, вы не можете сделать это с помощью стандартного jQuery datepicker.
Недавно я сам столкнулся с этой проблемой, я не смог найти решение с помощью jQuery datepicker по умолчанию, поэтому вместо этого я создал свой собственный плагин wiQuery, используя: http://keith -wood.name / datepick.html, Это требует немного больше работы, но, углубившись в код wiQuery, вы можете найти классы, которые вам нужно эмулировать, чтобы этот альтернативный указатель даты работал.
Я скопировал:
- DatePickerOptions
- DatePicker
- DatePickerJavascriptResourceReference
- JsScopeUiDatePickerOnChange
.classes от org.odlabs.wiquery.ui.datepicker.
Я добавил 'Multi' к началу этих имен классов и использовал справочное руководство по настройкам и параметрам обратного вызова по адресу: http://keith -wood.name / datepickRef.html (также можно увидеть более точная, но менее лаконичная версия, нажав быструю ссылку на первую ссылку), чтобы мой недавно созданный класс MultiDatePicker генерировал правильный javascript.
Например, по умолчанию в DatePicker есть следующий код:
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());
}
Я разместил строки:
public void setMultiSelect(int i)
{
put("multiSelect", i);
}
public int getMultiSelect()
{
return getInt("multiSelect");
}
в мои multiDatePickerOptions и некоторые тупые методы получения и установки в классе MultiDatePicker, которые устанавливают эти параметры, и это позволяет вам установить, сколько дат можно установить. Сделав все это, я смог:
MultiDatePicker multiDatePicker = new MultiDatePicker("datePicker");
multiDatePicker.setMultiSelect(2);
add(multiDatePicker);
, который генерирует следующий код JavaScript:
$('#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.*/}});
Удачи!