1

我在徘徊如何使一周中只有几天启用?例如,如何使星期一星期三和星期四启用,并且在某个月的某个星期中禁用其余天?

我玩过setDate(DateOption dateOption), setMaxDate(DateOption dateOption)setMinDate(DateOption dateOption)但没有结果。

谢谢你。

4

1 回答 1

1

AFAIK 你不能用默认的 jQuery 日期选择器来做到这一点。

我最近自己遇到了这个问题,我找不到使用默认 jQuery datepicker 的解决方案,所以我创建了自己的 wiQuery 插件,使用:http ://keith-wood.name/datepick.html 。它需要更多的工作,但通过深入研究 wiQuery 代码,您可以找到需要模拟的类以使这个备用日期选择器工作。

我复制了:

  • 日期选择器选项
  • 日期选择器
  • DatePickerJavascriptResourceReference
  • JsScopeUiDatePickerOnChange

来自 org.odlabs.wiquery.ui.datepicker 的 .classes。

我在这些类名的开头附加了“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 类中的一些愚蠢的 getter 和 setter,这允许您设置可以设置多少个日期。通过做这一切,我能够做到:

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.*/}});

祝你好运!

于 2012-05-14T14:50:44.023 回答