Skip to content

Instantly share code, notes, and snippets.

@pnmcosta
Last active February 9, 2023 12:33
Show Gist options
  • Save pnmcosta/20bf60ddeec4c94f9a93af158285cf3f to your computer and use it in GitHub Desktop.
Save pnmcosta/20bf60ddeec4c94f9a93af158285cf3f to your computer and use it in GitHub Desktop.
bootstrap-datepicker single inline date range selection
/* *************** HTML *****************
* <div class="form-group search-calendar">
* <h3>Data</h3>
* <div class="bs-datepicker">
* <div class="range-start"></div>
* <div class="range-end"></div>
* </div>
* <div class="row no-gutter">
* <div class="col-md-6">
* <input type="text" name="range-end" value="" placeholder="de" class="form-control range-input" />
* </div>
* <div class="col-md-6">
* <input type="text" name="range-start" value="" placeholder="até" class="form-control range-input" />
* </div>
* </div>
* </div>
* ************** HTML ***************** */
function initCalendar() {
var container = $(".search-calendar");
var calendar = container.find(".bs-datepicker");
if (!container.length || !calendar.length)
return;
var inputs = container.find('.range-input');
calendar.datepicker({
format: "dd-mm-yyyy",
startView: 0,
maxViewMode: 2,
language: "pt",
todayHighlight: true,
weekStart: 1,
inputs: calendar.find('.range-start, .range-end'),
templates: {
leftArrow: "<i class=\"fa fa-angle-left\"></i>",
rightArrow: "<i class=\"fa fa-angle-right\"></i>"
}
});
var start = calendar.find('.range-start'),
end = calendar.find('.range-end');
end.hide();
start.on('changeDate', function (e) {
if (typeof e.dates !== 'undefined' && e.dates.length && start.is(':visible')) {
end.show();
start.hide();
if (inputs && inputs.length) {
$(inputs[0]).val(e.format());
}
}
});
end.on('changeDate', function (e) {
if (typeof e.dates !== 'undefined' && e.dates.length && end.is(':visible')) {
start.show();
end.hide();
if (inputs && inputs.length && inputs.length > 1) {
$(inputs[1]).val(e.format());
}
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment