结束日期>开始日期选择器Javascript无法正常工作
问题描述:
我希望日期选取器只显示大于开始日期的值。我经历了许多这样的例子,但没有解释为什么我的代码不工作。 : -/结束日期>开始日期选择器Javascript无法正常工作
这里是我的JS & HTML片段:
var start;
$(document).ready(function() {
$('#s_dt').datepicker({
startDate: new Date(),
daysOfWeekDisabled: [0, 6],
onSelect: function(date) {
start = new Date(date);
}
})
.on('changeDate', function(ev) {
$('#s_dt').datepicker('hide');
});
$('#e_dt').datepicker({
startDate: start,
daysOfWeekDisabled: [0, 6],
})
.on('changeDate', function(ev) {
$('#e_dt').datepicker('hide');
});
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<link href="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.2.0/css/datepicker.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.2.0/js/bootstrap-datepicker.js"></script>
<div class="form-group">
<label class=" col-sm-3" for="title">Start Date</label>
<div class="col-sm-9">
<input type='text' class="form-control startdate" id="s_dt" placeholder="Start Date" name="s_dt" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3" for="title">End Date</label>
<div class="col-sm-9">
<input type='text' class="form-control startdate" id="e_dt" placeholder="End Date" name="e_dt" />
</div>
</div>
答
以下示例显示结束日期为开始日期后1天。您可以通过添加任何数量end
变量end.setDate(st.getDate()+1);
$(document).ready(function() {
var start = new Date();
var end = new Date();
$("#s_dt").datepicker({
startDate: start,
daysOfWeekDisabled: [0, 6],
})
$("#s_dt").on('changeDate', function() {
var st = new Date($("#s_dt").val());
var end = new Date(st);
end.setDate(st.getDate()+1);
end.toLocaleDateString();
$("#e_dt").datepicker({
startDate: end,
daysOfWeekDisabled: [0, 6],
})
})
//basically this clears out the datepicker when you clear out the end date to select a new date.
$("#e_dt").on('changeDate',function(){
$('#e_dt').datepicker("remove");
})
})
答
var start;
$('#s_dt').datepicker({
startDate: new Date(),
daysOfWeekDisabled: [0, 6],
onSelect: function(date) {
start = new Date(date);
var selectedDate = $(this).datepicker("getDate");
var today = new Date().valueOf();
if (selectedDate.valueOf() < today) {
$(this).val("");
}
}
})
$('#e_dt').datepicker({
setStartDate: new Date(),
daysOfWeekDisabled: [0, 6],
onSelect: function(date) {
start = new Date(date);
var s_date = $('#s_dt').datepicker("getDate");
var selectedDate = $(this).datepicker("getDate");
if (selectedDate.valueOf() < s_date) {
$(this).val("");
}
}
})
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<link href="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.2.0/css/datepicker.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css" rel="stylesheet" />
<div class="form-group">
<label class=" col-sm-3" for="title">Start Date</label>
<div class="col-sm-9">
<input type='text' class="form-control startdate" id="s_dt" placeholder="Start Date" name="s_dt" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3" for="title">End Date</label>
<div class="col-sm-9">
<input type='text' class="form-control startdate" id="e_dt" placeholder="End Date" name="e_dt" />
</div>
</div>
绑定日期选择器的内置onSelect
所有选项的条件。
+0
谢谢:)帮我做的最后一天! –
+0
欢迎bro :-) – 2017-09-14 05:10:37
非常感谢..工作就像一个魅力! –
嘿,这个问题。如果我最初选择开始日期的某个日期,然后再次更改日期,则结束日期选择器不会更改(例如,首先我选择了第20个,然后将其更改为25,结束日期选择器仍显示从21日起)。如何解决这个问题? –
只需重置“#e_dt”的整个日期选择器,以便在清除结束日期以选择开始日期时重置整个事件。 – EyoelD