Bootstrap and datepicker
HTML
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.1.0/js/bootstrap.min.js"></script>
<script src="http://eternicode.github.io/bootstrap-datepicker/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.1/css/bootstrap-datepicker.css">
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.1.0/css/bootstrap.min.css">
<div class="container-fluid">
<div class="form-group col-lg-12">
<div class="col-lg-2">
<label>
Start Date</label>
</div>
<div class="col-lg-7">
<div class="input-group date-control">
<input type="text" id="txtStartDate" class="form-control txtStartDate" />
<span class="input-group-addon" style="cursor: pointer;" id="From_CalendarIcon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class="form-group col-lg-12">
<div class="col-lg-2">
<label>
End Date</label>
</div>
<div class="col-lg-7">
<div class="input-group date-control">
<input type="text" id="txtEndDate" class="form-control txtEndDate" />
<span class="input-group-addon" style="cursor: pointer;" id="From_CalendarIcon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
</div>
JavaScript
//var $j = jQuery.noConflict();
$(document).ready(function() {
/************DATE FIELDS********************/
//set current date as default
var today = new Date();
setTriggerDates(today, 1);
setTriggerDates(today, 2);
$(".txtStartDate").datepicker({
//show calendar when focus is on textbox
format: "yyyy-mm-dd",
autoclose: true
});
$(".txtEndDate").datepicker({
//show calendar when focus is on textbox
format: "yyyy-mm-dd",
autoclose: true
});
$(".txtStartDate").datepicker()
.on("hide", function(ev) {
validateDates(1);
//ev.stopPropagation();
//return false;
});
$(".txtEndDate").datepicker()
.on("hide", function(ev) {
validateDates(2);
//ev.stopPropagation();
});
/************END DATE FIELDS******************/
}); //end document.ready
function setTriggerDates(newDate, applyTo) {
//applyTo determines, which textfield the value should be applied to.
//if 1, then change value of txtStartDate,
//if 2, then change value of txtEndDate
//populate date into the date fields
var today = new Date(newDate);
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd
}
if (mm < 10) {
mm = '0' + mm
}
today = yyyy + '-' + mm + '-' + dd;
switch (applyTo) {
case 1:
case "1":
$(".txtStartDate").val(today);
break;
case 2:
case "2":
$(".txtEndDate").val(today);
break;
}
}
function validateDates(dateType) {
//dateType is to know if this function was fired by changing startdate or enddate
//end-date must always be >= start-date
var today = new Date();
var startDate = new Date($(".txtStartDate").val());
var endDate = new Date($(".txtEndDate").val());
switch (dateType) {
case 1:
case "1":
//if startDate is changed
//alert(startDate.getTime() > today.getTime());
if (startDate > today) {
...