gpt4 book ai didi

javascript - 为什么选择今天以外的日期时,时间选择器无法降级?

转载 作者:行者123 更新时间:2023-12-03 03:45:06 24 4
gpt4 key购买 nike

我的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/

如果我单击时间选择器并单击减少小时图标,则它不起作用。我知道它会发生,因为这段代码:minDate: moment().startOf('month').add(300, 'm')。我希望代码只在这一天有效。除了今天之外,代码不起作用

我该怎么做?

最佳答案

您的#datepicker#timepicker不相关,它们完全独立,由您来关联它们。您可以使用 minDate 动态设置 #timepickerminDate功能。

您可以为 dp.change 添加监听器事件并启用或禁用 #timepicker 检查的 minDate(如果所选日期是当天)(使用 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选择的日期没有自动关系)。

关于javascript - 为什么选择今天以外的日期时,时间选择器无法降级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45428366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com