Чтобы ваш выпадающий календарь (flatpickr) стал обязательным полем в форме, вам нужно сделать так, чтобы в поле ввода даты по умолчанию не было значения, благодаря чему стандартное требование `required` будет работать корректно. Значение по умолчанию `0000-00-00` не позволяет валидировать поле, поскольку это не пустое значение.
Чтобы решить проблему, вам необходимо установить пустую строку в качестве значения по умолчанию и сделать так, чтобы календарь открывался при клике на поле. Мы можем также использовать метод события для проверки значения при отправке формы.
Вот пример того, как это можно сделать:
```html
<input type="text" id="usr_birthday" name="birthday" required placeholder="Введите дату рождения" />
<script type="text/javascript">
$(function() {
// Устанавливаем значение по умолчанию как пустое
$("#usr_birthday").val('');
// Инициализируем flatpickr
$("#usr_birthday").flatpickr({
dateFormat: "d-m-Y",
minDate: new Date('<?php echo date('Y')-129; ?>'),
maxDate: new Date('<?php echo date('Y')-14; ?>-12-31'),
onClose: function(selectedDates, dateStr, instance) {
// Проверяем, если дата не выбрана, устанавливаем пустое значение
if (dateStr === '') {
$("#usr_birthday").val('');
}
}
});
// Проверка даты перед отправкой
$('form.setting-general-form').on('submit', function(e) {
var dateValue = $("#usr_birthday").val();
if (dateValue === '') {
alert("Поле даты рождения обязательно для заполнения.");
e.preventDefault(); // Отменяем отправку формы
}
});
});
function Wo_SubmitInfoForm() {
$("form.setting-general-form").submit();
}
$(function () {
$('form.setting-general-form').ajaxForm({
url: Wo_Ajax_Requests_File() + '?f=update_user_information_startup',
beforeSend: function () {
$('button.disable_btn').attr('disabled', true);
$('button.disable_btn').text("<?php echo $wo['lang']['please_wait']; ?>");
},
success: function (data) {
if(data.status == 200) {
window.location.href = '<?php echo Wo_SeoLink('index.php?link1=start-up'); ?>';
}
}
});
});
</script>
```
В этом коде мы делаем следующее:
1. Устанавливаем пустое значение для поля `#usr_birthday` с помощью `$("#usr_birthday").val('');`.
2. Проверяем при закрытии календаря, оставлено ли поле пустым, чтобы не устанавливать ненужные значения.
3. В обработчике события отправки формы проверяем, действительно ли заполнено обязательное поле. Если нет, показываем уведомление и отменяем отправку формы, используя `e.preventDefault()`.
Это должно помочь вам сделать поле даты рождения обязательным для заполнения и решить проблему с календарем.