[英]end date > startdate date picker Javascript not working
I want the date picker to display the values greater than start date only. 我希望日期选择器仅显示大于开始日期的值。 I have gone through many such examples but none explained why my code is not working.
我已经看过很多这样的示例,但是没有一个解释为什么我的代码无法正常工作。 :-/
:-/
Here are my JS & HTML snippets: 这是我的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>
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>
Bind all condition on onSelect
inbuilt option of date-picker. 将所有条件绑定到日期选择器的
onSelect
内置选项上。
The example below shows the end date as 1 day after the start date. 下面的示例将结束日期显示为开始日期之后的1天。 You can make the end date by adding whatever number to
end
variable in end.setDate(st.getDate()+1);
您可以通过向
end.setDate(st.getDate()+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");
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.