У меня есть простая форма, которая содержит одну кнопку отправки и 2 входных текста, которые вызывают " date1 " и " date2 ", и оба используют плагин DatePicker Gijgo (https://gijgo.com/datepicker) для выбора даты.
Я хотел бы отключить кнопку отправки, если я выбрал дату из " date2 ", которая меньше, чем сегодня, и включил бы кнопку отправки, еслия выбираю дату из " data2 ", которая больше / равна сегодняшнему дню.
Прежде чем я оставлю здесь сообщение, я исследовал темы ниже, но не нашел правильного способа решить эту проблему.:
- JQuery Datepicker Проблемы с OnSelect и TextChanged
- Активировать кнопку, когда два поля датировщиков имеют значения
- jQuery отключить или включить кнопку отправки на основе дат
Ниже приведен код, с которым я работаю:
1. Сценарии CDN
<!-- BOOTSTRAP CSS CDN -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" />
<!-- BOOTSTRAP SCRIPT CDN -->
<script src="https://code.jquery.com/jquery-3.4.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<!-- DATEPICKER SCRIPT CDN -->
<script src="https://unpkg.com/gijgo@1.9.13/js/gijgo.min.js" type="text/javascript"></script>
<link href="https://unpkg.com/gijgo@1.9.13/css/gijgo.min.css" rel="stylesheet" type="text/css" />
2. HTML-код формы
<div class="container" style="max-width:507px;">
<br>
<form method="post" id="date_form" enctype="multipart/form-data">
<div class="form-row">
<div class="col-md-6 mb-3">
<label align="left"><b>Date 1</b></label>
<input type="text" name="date1" id="date1" class="form-control"/>
</div>
<div class="col-md-6 mb-3">
<label align="left"><b>Date 2</b></label>
<input type="text" name="date2" id="date2" class="form-control"/>
</div>
</div>
</form>
<div class="form-footer">
<input type="submit" id="btnSubmit" name="btnSubmit" class="btn btn-success" value="SUBMIT" disabled/>
</div>
</div>
Сценарий DatePicker, который отключает старую дату от «
date2 » до даты, выбранной в «
date1 »:
<!-- DATEPICKER SCRIPT -->
<script>
var today = new Date();
$('#date1').datepicker({
format: 'dd/mm/yyyy',
uiLibrary: 'bootstrap4',
iconsLibrary: 'fontawesome',
maxDate: function () {
return $('#date2').val();
}
});
$('#date2').datepicker({
format: 'dd/mm/yyyy',
uiLibrary: 'bootstrap4',
iconsLibrary: 'fontawesome',
minDate: function () {
return $('#date1').val();
}
});
</script>
4.И наконец, код, который я пытаюсь применить, чтобы отключить кнопку отправки, когда я выбрал дату из «date2», которая меньше (<), чем сегодня, но, к сожалению, она не работает: </strong>
<!-- SCRIPT TO DISABLE SUBMIT BUTTON IF ***date2*** IS LESS THAN TODAY -->
<script>
$('#date2').datepicker({
dateFormat: 'dd/mm/yyyy',
onSelect: function(dateText){
var date2 = $('#date2').val();
var curDate = new Date();
if(date2 < curDate){
$("#btnSubmit").attr("disabled", true);
}else{
$("#btnSubmit").attr("disabled", false);
}
}
});
</script>
В этом случае, как я могу изменить этот скрипт выше, чтобы отключить кнопку отправки, когда я каждый раз выбираю дату из « date2 », которая меньше, чем сегодня, и включить кнопку отправки, когда я выбираю датуиз " date2 ", который больше / равен сегодня?