Если <input>имеет атрибут pattern, есть ли смысл также включать обязательный атрибут? - PullRequest
0 голосов
/ 25 ноября 2018

Если, например, у вас есть:

<input type="text" name="username" pattern="[a-z][a-z0-9]{2,7}">

Добавляет ли «обязательный», например:

<input type="text" name="username" pattern="[a-z][a-z0-9]{2,7}" required>

добавить какое-либо значение или функциональность?Кажется, все работает одинаково, но мне интересно, если я пропустил некоторые тонкости.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Согласно Разделу 4.10.5.3.6.«Атрибут шаблона» стандарта HTML5 шаблон проверяется только в том случае, если значение ввода не является пустым:

Если значение элемента не является пустой строкой, ... иэлемент имеет скомпилированное регулярное выражение шаблона, но это регулярное выражение не соответствует полноте значения элемента, поэтому элемент страдает от несовпадения шаблона.

Итак, чтобы предотвратить отправку формыс пустым значением обязательный атрибут (также) является обязательным (даже если пустая строка не соответствует шаблону).

Примечание: это также относится к API проверки ограничений HTML5.

Если вход пуст, то вход .validity.valid будет true, а вход .validity.patternMismatch будет false, если только обязательный атрибут также не являетсяв настоящее время input .validity.valueMissing также будет false.

[fyi: На момент написания статьи API широко поддерживается, хотя IE и Blackberry путают некоторыеаспекты]

0 голосов
/ 26 ноября 2018

В html5 добавлен атрибут "required: для обязательного заполнения поля. В противном случае при отправке формы будет выдано сообщение об ошибке. И если вы введете любое входное значение, шаблон будет проверен соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...