我的HTML代码如下:
<div class="container">
<div class="row">
<div class='col-sm-6'>
<div class="form-group">
<input type='text' class="form-control" id='datepicker' data-date-format="DD-MM-YYYY" />
</div>
</div>
<div class='col-sm-6'>
<div class="form-group">
<input type='text' class="form-control" id='timepicker' data-date-format="HH:mm" />
</div>
</div>
</div>
</div>
<button id="btnSubmit">
Submit
</button>
我的JavaScript代码是这样的:
$(function () {
$('#datepicker').datetimepicker();
$('#timepicker').datetimepicker({
minDate: moment().startOf('minute').add(300, 'm'),
});
});
$("#btnSubmit").click(function() {
value = document.getElementById('datetimepicker').value;
console.log(value)
});
演示这样的: https://jsfiddle.net/8jpmkcr5/89/
如果我点击timepicker并单击减量小时图标,这是行不通的。 我知道这是因为这样的代码: minDate: moment().startOf('minute').add(300, 'm')
我想要的代码在这一天只工作。 除了今天的代码不起作用
我该怎么做?
你#datepicker
和#timepicker
无关 ,他们是完全独立的 ,是由你来联系他们。 您可以设置dinamically minDate
的#timepicker
使用minDate
功能。
您可以添加一个听者的dp.change
事件,并启用或禁用minDate
为#timepicker
chceking如果所选一天是当前日期(用momentjs isSame
)。
你要添加minDate
选项也#datepicker
如果要禁用过去的日期,你的意见陈述。
在这里工作示例:
$(function () { $('#datepicker').datetimepicker({ minDate: moment().startOf('day') }).on('dp.change', function(e){ if( e.date && e.date.isSame(moment(), 'd') ){ var min = moment().startOf('minute').add(300, 'm'); $('#timepicker').data("DateTimePicker").minDate(min); } else { $('#timepicker').data("DateTimePicker").minDate(false); } }); $('#timepicker').datetimepicker({ minDate: moment().startOf('minute').add(300, 'm'), }); }); $("#btnSubmit").click(function() { value = document.getElementById('datepicker').value; console.log(value) valueTime = document.getElementById('timepicker').value; console.log(valueTime) });
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css" rel="stylesheet"/> <div class="container"> <div class="row"> <div class='col-sm-6'> <div class="form-group"> <input type='text' class="form-control" id='datepicker' data-date-format="DD-MM-YYYY" /> </div> </div> <div class='col-sm-6'> <div class="form-group"> <input type='text' class="form-control" id='timepicker' data-date-format="HH:mm" /> </div> </div> </div> </div> <button id="btnSubmit"> Submit </button>
请注意,如前所述, #datepicker
和#timepicker
无关,因此与#timepicker
你只是选择时间,默认为当天(使用选定日期没有自动关系#datepicker
)。
如果你想限制输入到今天而已,为什么你想设置的时间选择器是否有限制? 你应该在日期选择器设置限制
文章来源: Why timepicker can not be downgraded when choosing a date other than today?