<form action="/signup" method="post">
<label for="email">Почта</label>
<input id="email" name="email" type="email" required autocomplete="email">
<label><input type="checkbox" name="terms" required> Согласен с условиями</label>
<button type="submit">Зарегистрироваться</button>
</form>
Что важно знать
- У каждого поля —
<label>: клик по подписи фокусирует поле, скринридер читает подпись. - Типы
email,tel,number,dateдают нужную клавиатуру на телефоне и встроенную проверку. - Встроенная валидация:
required,pattern,min,maxlength; псевдоклассы:invalid,:user-invalid. autocompleteпомогает браузеру и менеджерам паролей.- Кнопка внутри формы по умолчанию —
type="submit"; для других действий явноtype="button". - Проверки на клиенте — для удобства, а настоящая проверка — на сервере: клиентскую обходят одним запросом.
- Обработка в JS: событие
submit,event.preventDefault(),new FormData(form).