При создании HTML-форм обычно включаются поля ввода даты. Однако поведение по умолчанию элемента HTML включает компонент времени, который не всегда может быть необходимым или желательным. В этой статье мы рассмотрим несколько методов реализации ввода только даты в HTML-формах, а также примеры кода и пояснения.
Метод 1: использование атрибута type="date".
Самый простой способ создать входные данные, содержащие только дату, — использовать атрибут type="date"атрибут. Однако внешний вид и поведение средства выбора даты зависят от браузера. Вот пример:
<input type="date" name="birthdate">
Метод 2: настройка средства выбора даты с помощью JavaScript
Чтобы иметь больший контроль над средством выбора даты, мы можем использовать библиотеки JavaScript, которые предоставляют настраиваемые параметры. Одной из популярных библиотек является jQuery UI Datepicker. Вот пример:
<input type="text" id="datepicker" name="birthdate">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://code.jquery.com/ui/1.13.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.1/themes/base/jquery-ui.css">
<script>
$(function() {
$("#datepicker").datepicker({
dateFormat: "yy-mm-dd"
});
});
</script>
Метод 3. Использование библиотеки дат JavaScript
Другой подход — использовать библиотеку дат JavaScript, например Moment.js или Luxon. Эти библиотеки предоставляют мощные возможности обработки дат. Вот пример использования Luxon:
<input type="text" id="birthdate" name="birthdate">
<script src="https://cdn.jsdelivr.net/npm/luxon@2.4.0/build/global/luxon.min.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
const input = document.getElementById("birthdate");
input.addEventListener("focus", function() {
this.type = "date";
});
input.addEventListener("blur", function() {
this.type = "text";
});
});
</script>
Метод 4. Ручной ввод с проверкой по шаблону
Если вы предпочитаете более простой подход, не полагаясь на средства выбора дат, вы можете разрешить пользователям вводить даты вручную и проверять их с помощью атрибута pattern. Вот пример:
<input type="text" name="birthdate" pattern="\d{4}-\d{2}-\d{2}" placeholder="YYYY-MM-DD">
В этой статье мы рассмотрели несколько методов реализации ввода только даты в формах HTML. Предпочитаете ли вы использовать собственный атрибут type="date", настраивать средство выбора даты с помощью библиотек JavaScript или вручную вводить и проверять даты, у вас есть различные варианты, соответствующие вашим требованиям. Поэкспериментируйте с этими методами и выберите тот, который лучше всего подходит для вашего проекта.
Не забудьте учитывать совместимость браузера и тщательно протестировать свою реализацию, чтобы обеспечить удобство работы с пользователем.