Редактировать: есть решение в ответе.
Может ли какой-нибудь эксперт помочь мне с кодом javascript?
У меня есть eternicode Datepicker, работающий с bootstrap3 (он работает, когда щелкаешь, чтобы выбрать дату) https://github.com/eternicode/bootstrap-datepicker/tree/bs3
Но теперь у меня есть две даты, Checkin и Checkout, и я хочу: При выборе Checkout он отключает дни ‹= Checkin. При выборе регистрации, если это происходит после проверки, измените проверку на +1 день после выбранной регистрации.
У меня есть некоторый код html и javascript, но он работает не очень хорошо: когда я выбираю регистрацию, днем проверки является сегодняшний день, и он должен быть выбран при регистрации + 1 день. Когда я выбираю проверку, он отключает только дни до текущего дня, работает только в том случае, если я выбираю день после дня регистрации.
Похоже, что это какая-то проблема с setValue проверки.
HTML-код (входные данные):
<div class="form-group"> <label for="DtChkIn">Data Checkin</label> <div class="input-group date" id="dp1"> <span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span> <input type="text" class="form-control input-sm" id="DtChkIn" placeholder="Data CheckIn" readonly="readonly"> </div> </div> <div class="form-group"> <label for="DtChkOut">Data Checkout</label> <div class="input-group date" id="dp2"> <span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span> <input type="text" class="form-control input-sm" id="DtChkOut" placeholder="Data CheckOut" readonly="readonly"> </div> </div>
И джаваскрипт:
var nowTemp = new Date(); var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0); var checkin = $('#dp1').datepicker({ language: "pt", format: "dd/mm/yyyy", beforeShowDay: function (date) { return date.valueOf() < now.valueOf() ? false : ''; } }).on('changeDate', function (ev) { if (ev.date.valueOf() > checkout.date.valueOf()) { var newDate = new Date(ev.date); newDate.setDate(newDate.getDate() + 1); checkout.setValue(newDate); } checkin.hide(); $('#DtChkOut').focus(); }).data('datepicker'); var checkout = $('#dp2').datepicker({ language: "pt", format: "dd/mm/yyyy", beforeShowDay: function (date) { return date.valueOf() <= checkin.date.valueOf() ? false : ''; } }).on('changeDate', function (ev) { checkout.hide(); }).data('datepicker');