Pull to refresh

Comments 6

UFO just landed and posted this here

На мой взгляд, стоит добавить, что HTML5 предоставляет относительно удобный способ кастомной валидации в JS, задействующий те же механизмы, что и перечисленные в статье аттрибуты. Достаточно вызвать для нужного вам поля field.setCustomValidity(text)
При этом, если text пустой, то считается, что элемент валидный, в противном случае — невалидный и переданный текст отображается как ошибка валидации.


Также стоит отметить возможность использования css псевдо-классов :valid и :invalid при использовании стандартной HTML5 валидации.


пс полностью согласен с предыдущим комментарием насчет безопасности — проверка ввода это удобство пользователя, а не защита собственного сервиса.


ппс когда я использовал аттрибут required, он засчитывал наличие любых символов (в т.ч. пробелов). Поэтому писал собственную проверку с использованием trim. Если кто-то подскажет, если это как-то настраиваемо, буду благодарен

В комментах пишут, что куча статей на этот счет.
Они все одинаковые, как и эта.
А вот о field.setCustomValidity() и :valid и :invalid я впервые узнал тут, правда в комментах :)
Мало того, что именно таких статей в интернете пруд пруди, так еще и не сказали что Обязательно! надо проверять все входящие данные повторно на сервере. Иначе качаем старый браузер — и не заполняем обязательные поля и обходим все паттерны для ввода (или в современном браузере, в режиме вебинспектора — сами меняем паттерны — и на сервер данные нужные нам шлем).

Как написал первый комментатор — это лишь для удобства пользователя. Законопослушного. Для злодея — это огромная дыра.
Проверка форм в HTML5 преследует даже две цели, я бы сказал — упрощение пользователю ввода и сокращение затрат ресурсов сетевых, на сервере и т.д. Т.е. если пользователь ввел в форме что-то не то, то это не будет отправлено серверу, а будет отклонено на стороне клиента. Т.е. это позволяет сократить издержки на обслуживание ошибочных данных со стороны добросовестных пользователей. От злоумышленников и их запросов это, конечно же, никак не спасет.
>У него не может быть значения.

Кто непонятно почему использует XHTML, те вынуждены писать required=«required» :)

Правильно было бы сказать, что это булев тип, не требующий значения, включающийся просто от наличия атрибута.
Sign up to leave a comment.

Articles