我正在使用此代码:
<script type="text/javascript">
$(function() {
var picker= $('#timepicker').datetimepicker({
pickDate: false,
pickSeconds: false,
minView: 2,
pick12HourFormat: true,
startDate: new Date(<?php echo date('Y,m,d,h,i'); ?>),
// endDate: '<?php echo date('Y-m-d h:i'); ?>'
}).on('changeDate', function(ev){
var startDate = new Date();
//var df = get_time_difference(ev.localDate,startDate);
// alert(startDate.getHours());
// alert(ev.localDate.getHours());
if(startDate.getHours() > ev.localDate.getHours()){
// ev.stopPropagation();
// ev.stopImmediatePropagation();
// ev.preventDefault();
$("#time").val('Error');
//$('#time').unbind('changeDate');
return false;
}
});
});
</script>
当我选择低于当前时间的时间时,它应显示错误,但在关闭后,它会显示所选的一个,
我想停止事件更改输入字段#time的日期。
的问候,
答案 0 :(得分:2)
http://tarruda.github.io/bootstrap-datetimepicker/上的文档告诉您:暴露的唯一事件是'changeDate'。但是当你关闭日期/时间弹出选择器'hide'时也会触发。您可以使用此触发器再次检查并在出错时重新设置$(“#time”)。
您需要在hide事件中读取'$(“#time”)。val()'以获取输入的新日期时间。使用new Date($("#time").val())
将其转换为日期,并可以应用getHours()
。
尝试:
$('#timepicker').datetimepicker().on('hide',function(e){
if(new Date($("#time").val()).getHours()<12)
{$("#time").val('Also error');}
});