我的表格中有两个字段。一个是使用jQuery日期选择器的日期字段,另一个是jQuery时间选择器。现在的问题是,如果我在日期字段中选择了今天的日期,那么时间选择器不应显示过去的时间。例如。如果现在的时间是17:00,则时间选择器不应将17:00之前的时间显示为可选时间。这是我的代码,
$(function() {
$( ".datepicker" ).datepicker({minDate:'0'});
$('.timepicker').timepicker();
});
$("#date").click(function(){
if($("#date").val()=='04/17/2012')
{
updatetimefortoday();
}
});![enter image description here][1]
function updatetimefortoday()
{
$('.timepicker').timepicker({
onHourShow: timepickerRestrictHours
});
function timepickerRestrictHours(hour)
{
if ((hour > 17))
{
return true;
}
return false;
}
}
现在的问题是,如果我们在
updatetimefortoday()
上调用函数document.ready
,它将正确显示时间选择器。但是,如果按代码中所示单击日期字段来执行此操作,则它将不起作用。这是选择日期后的预期输出。
最佳答案
经过更多的工作后,我得出的结论是,最好的方法是始终调用onHourShow函数并在该函数中验证所选日期。我认为这样做会更好,因为用户仍然可以看到禁用时间,而不是空白单元格。
$('#date').datepicker({
minDate: 0
});
$('#time').timepicker({
onHourShow: function( hour ) {
var now = new Date();
// compare selected date with today
if ( $('#date').val() == $.datepicker.formatDate ( 'mm/dd/yy', now ) ) {
if ( hour <= now.getHours() ) {
return false;
}
}
return true;
}
});
这是一个工作示例:
http://jsfiddle.net/fgelinas/kUFgT/4/
至于艾哈迈德·萨法迪(Aymad Safadi)报告的上班时间和下班时间问题,我将看到可以解决的问题,这绝对是一个错误。