Я использую BootStrap Datepicker daterange. Когда я устанавливаю даты программно, календари неправильно отображают выбор. Мои коды:
<div class="input-group input-daterange">
<input type="text" id="startDate"
class="form-control" name="startDate" value="2020-08-01">
<span class="input-group-addon">to</span>
<input type="text" id="endDate"
class="form-control" name="endDate" value="2020-08-08">
</div>
<script>
$(document).ready(function() {
$('.input-daterange').datepicker( {
format: 'yyyy-mm-dd',
autoclose: true
});
//change date
$('#startDate').val('2022-01-19');
$('#endDate').val('2022-01-29');
var startDate = new Date($('#startDate').val());
var endDate = new Date($('#endDate').val());
var $start = $(".input-daterange").find('#startDate');
var $end = $(".input-daterange").find('#endDate')
$start.datepicker('setStartDate', startDate);
$end.datepicker('setEndDate', endDate);
});
</script>
Ожидаемое поведение
Actual behaviour
Other than the calendar display, there are 2 more problems:
Start date calendar doesn't auto close after selected
Start date doesn't use the format (yyyy-mm-dd). After selected it
become mm/dd/yyyy
Version used
datepicker : v1.9.0
bootstrap: v3.4.1
jquery: v3.4.1
Update on 22-Jun:
I changed my code to:
$start.datepicker('setDate', startDate);
$end.datepicker('setDate', endDate);
Now it is better:
введите описание изображения здесь
Тем не менее, это не то, что я ожидал. Я не против, чтобы 29-е число не было выделено более темным серым цветом в календаре даты начала. Настоящая проблема в том, что 19-е число не выделено / не выбрано вообще в календаре даты окончания.