我正在尝试设置datepicker以将选择范围限制为5天。
这很好并且有效,但是今天的问题必须是'工作日',没有星期日和星期六,这意味着如果我选择5月18日星期五,我的限制将是5月24日星期四。
有什么想法吗?我有以下代码:
$('.datepicker').datepicker({
dayNames: ["Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sábado"],
dayNamesMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"],
monthNames: ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],
//dateFormat: "DD, dd MM yy",
//altFormat: "DD, dd MM yy",
dateFormat: "dd M yy",
showAnim: "drop",
beforeShow: LimitaRango,
beforeShowDay: $.datepicker.noWeekends
});
function LimitaRango(input){
if (input.id == 'FechaHasta'){
var minDate = new Date($('#FechaDesde').val());
minDate.setDate(minDate.getDate() + 1);
var maxDate = new Date($('#FechaDesde').val());
maxDate.setDate(maxDate.getDate() + 5);
return {
minDate: minDate,
maxDate: maxDate
};
}
}
这个HTML:
<tr>
<td>Fecha Desde:</td>
<td colspan="2"><input type="text" name="FechaDesde" size="40" class="datepicker" id="FechaDesde"></td>
</tr>
<tr>
<td>Fecha Hasta:</td>
<td colspan="2"><input type="text" name="FechaHasta" size="40" class="datepicker" id="FechaHasta"></td>
</tr>
PS:非常感谢您给予的帮助,但问题在于周末才能识别。现在,我有这个工作,但如果用户选择“星期五”,我的目标是将他的选择限制到星期四,但现在,使用此代码,它仅限于“星期二”,因为周末计入“5天” “从选定的开始日开始。
答案 0 :(得分:2)
您可以使用以下代码禁用周末:
$("#element").datepicker(
{
beforeShowDay: $.datepicker.noWeekends
}
);
编辑:要禁用指定的天数,请检查以下内容: Can the jQuery UI Datepicker be made to disable Saturdays and Sundays (and holidays)?
答案 1 :(得分:2)
你想要的是从今天到未来六天的任何时间。因此,您需要设置选项maxDate。
var maxd = Date();
maxd.setTime( maxd.getTime() + (1000 * 3600 * 24 * 6) );
$('.datepicker').datepicker({
... // existing options
maxDate: maxd,
});
答案 2 :(得分:1)
使用 beforeShowDay 事件来限制日期选择性。如果此函数返回false,则该日期将不是活动的
即
beforeShowDay:
function(date) {
var dayOfWeek = date.getUTCDay();
if(dayOfWeek ==0 || dayOfWeek ==6) //0= Sunday 6= Saturday
{
return false;
}
else
{
return true;
}
}
有关详细信息,请参阅http://jqueryui.com/demos/datepicker/#event-beforeShowDay 和jQuery ui datepicker, get Day of week from onSelect