У меня есть два средства выбора даты, я хочу, чтобы дата начала не превышала дату окончания или дату окончания. меньше даты начала с использованием jquery, Я пробовал со следующим кодом, но у меня не работает, как я могу это сделать?
<script>
$(function() {
$( "#to" ).datepicker({
defaultDate: "",
maxDate:"+0d",
changeMonth: false,
numberOfMonths: 1,
onClose: function( selectedDate ) {
$( "#from" ).datepicker( "option", "minDate" ,selectedDate );
}
});
});
</script>
<script>
$(function() {
$( "#from" ).datepicker({
defaultDate: "",
maxDate:"+0d",
changeMonth: false,
numberOfMonths: 1,
onClose: function( selectedDate ) {
$( "#to" ).datepicker( "option", "maxDate" ,selectedDate );
}
});
});
</script>
Вы должны быть более точны в отношении «у меня не работает», выдает ли это ошибки? что он делает такого, чего вы не ожидали?
добавьте обратный вызов onSelect : function(date) к параметрам, там вытащите дату из другого средства выбора даты, если это не то, что вы хотите, верните false. Думаю, я должен был прочитать эту дублирующую ссылку, в основном то, что я сказал.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать событие onSelect
$(function() {
$("#from").datepicker({
defaultDate: "",
maxDate: "+0d",
changeMonth: false,
numberOfMonths: 1,
onSelect: function(selected) {
$("#to").datepicker("option", "minDate", selected)
}
});
$("#to").datepicker({
defaultDate: "",
maxDate: "+0d",
changeMonth: false,
numberOfMonths: 1,
onSelect: function(selected) {
$("#from").datepicker("option", "maxDate", selected)
}
});
});<link rel = "stylesheet" href = "//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src = "https://code.jquery.com/jquery-1.12.4.js"></script>
<script src = "https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<input type = "text" id = "from" />
<input type = "text" id = "to" />@ArtisticPhoenix, что ты имеешь в виду, убить выделение? у меня работает (Файрфокс)
Возможно, это был мой браузер. одна проблема заключается в том, что если вы выберете March 1 во втором поле, а затем удалите его, ваше первое поле будет заблокировано с максимальным значением March 1. Поэтому вам нужно вернуться ко второму, выбрать более крупную дату, а затем перейти к редактированию первого. Вероятно, вы можете использовать blur, чтобы проверить, пусто ли поле, и сбросить его до текущей даты, чтобы исправить это. Это небольшое раздражение. Что-то вроде этого: $("#to").blur(function(){ if ($(this).val() == '') $("#from").datepicker("option", "maxDate", 0); });
Возможный дубликат измените minDate второго средства выбора даты в зависимости от первого