The*_*own 17 javascript jquery datepicker
是否有Javascript或某些库可以为网页创建一个日期选择器(类似于Jquery UI DatePicker,它只允许某些日期可点击和突出显示.
例如,在服务器端,我可以指定一组天数来启用选择.
Rob*_*Dam 31
Datepicker beforeShowDay()事件就是为了这个目的.这是一个示例,其中允许日期的集合相对较小以用于说明目的.根据您拥有的日期和选择方式,您可以改为编写一种以编程方式选择日期的方法(例如忽略周末,每月的第1和第15日等).或者你可以结合两种技术,比如删除周末和固定的假期列表.
$(function() {
// this could be a static hash, generated by the server, or loaded via ajax
// if via ajax, make sure to put the remaining code in a callback instead.
var dates_allowed = {
'2009-12-01': 1,
'2009-12-25': 1,
'2010-09-28': 1,
'2011-10-13': 1
};
$('#datepicker').datepicker({
// these aren't necessary, but if you happen to know them, why not
minDate: new Date(2009, 12-1, 1),
maxDate: new Date(2010, 9-1, 28),
// called for every date before it is displayed
beforeShowDay: function(date) {
// prepend values lower than 10 with 0
function addZero(no) {
if (no < 10){
return "0" + no;
} else {
return no;
}
}
var date_str = [
addZero(date.getFullYear()),
addZero(date.getMonth() + 1),
addZero(date.getDate())
].join('-');
if (dates_allowed[date_str]) {
return [true, 'good_date', 'This date is selectable'];
} else {
return [false, 'bad_date', 'This date is NOT selectable'];
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
返回值是
[0]: boolean selectable or not,
[1]: CSS class names to apply if any (make sure to return '' if none),
[2]: Tooltip text (optional)
Run Code Online (Sandbox Code Playgroud)
请注意,回调中给出的日期变量是表示给定日期的Date对象的实例,而不是指定格式的该日期的文本版本.因此,例如,您可以生成一种格式的允许日期列表,同时以不同的格式显示日期选择器中的日期(例如,这样您就不必在生成页面时从数据库转换日期).
另请参见jQuery UI Datepicker是否可以禁用星期六和星期日(和假期)?
| 归档时间: |
|
| 查看次数: |
15443 次 |
| 最近记录: |