Комментарии

Проверка достоверности формы
( 0 Голосов )

 

Поведение formvalidation позволяет проверить достоверность данных в полях форм средствами JavaScript. Проверка достоверности средствами JavaScript обладает тем преимуществом, что дает возможность немедленно уведомить пользователя, не дожидаясь предъявления формы, если он введет недостоверные данные в поле формы. Ниже приведен пример действия поведения для проверки достоверности формы на экране Edit Your Profile (Правка вашего профиля) в пользовательской части веб-сайта.

В данном примере в полях формы введены неверный пароль и адрес электронной почты. Оба поля выделяются, как только в них происходят изменения. И для того чтобы увидеть ошибки ввода данных, совсем не обязательно щелкать на кнопке Submit.

Рассмотрим подробнее действие данного вида поведения. В XML-файле разметки упомянутой выше формы типа JForm (components/com_users/models/forms/prof ile. xml) можно обнаружить следующий код разметки поля Password (Пароль):

<field name="passwordl" type="password" autocomplete="off" class="validate-password" description="COM_USERS_DESIRED_PASSWORD" field="password2" filter="raw" label="COM_USERS_PROFILE_PASSWORDl_LABEL" message="COM_USERS_PROFILE_PASSWORDl_MESSAGE size="30" validate="equals" />

В атрибуте class установлено значение "validate-password" (выделено выше полужирным), а это означает, что при вводе пароля в данном поле автоматически вызывается проверка достоверности средствами JavaScript. Ниже приведен код разметки поля Email Address (Адрес электронной почты) из того же самого XML-файла.

<field name="emaill"  type="email" description="COM_USERS_PROFILE_EMAILl_DESC" filter="string" label="COM_USERS_PROFILE_EMAILl_LABEL" message="COM_USERS_PROFILE_EMAILl_MESSAGE" required="true" size="30" unique="true" validate="email" />

В атрибуте type установлено значение "email" (выделено выше полужирным), а это означает, что для воспроизведения данного поля в форме типа JForm должен быть использован класс JFormFieldEMail. В файле компоновки libraries/joomla/form/ fields/email.php устанавливается значение "validate-email" атрибута class разметки данного поля, и благодаря этому автоматически запускается проверка достоверности адреса электронной почты средствами JavaScript.

То же самое поведение может быть использовано и для проверки ввода данных в поле, которое должно быть обязательно заполнено. Для этого в атрибуте required устанавливается логическое значение true. Это можно сделать в файле разметки полей формы типа JForm или же просто ввести данный атрибут в элемент разметки input соответствующего поля. Все эти виды проверки достоверности выполняются в файле media/system/js/validate.js сценария JavaScript. Для того чтобы поведение f ormvalidation начало действовать, достаточно выполнить следующие действия.

  • Вызвать метод поведения JHtml::_ ('behavior. formvalidation'), чтобы загрузить соответствующий сценарий JavaScript в заголовок страницы.
  • Ввести атрибут в элемент разметки form.
  • Ввести атрибут required="true" или атрибут class с одним из значений, в элемент разметки field. Это делается в XML-файле для соответствующего поля формы типа JForm. (Как отмечалось выше, атрибут class вводится автоматически, если в разметке поля формы типа JForm задан атрибут type со значением "email".)

Следует иметь в виду, что рассматриваемое здесь поведение JavaScript действует отдельно от проверки достоверности, выполняемой средствами определенного класса JFormRule и запускаемой с помощью атрибута validate в разметке полей формы типа JForm. Как пояснялось в главе 6, если в разметку поля формы типа JForm вводится атрибут validate, то из соответствующего класса JFormRule автоматически вызывается метод test (). Например, для проверки достоверности данных в поле ввода адреса электронной почты устанавливается значение "email" в атрибуте validate, что влечет за собой вызов метода test () из класса JFormRuleEMail. Выполнение этого метода начинается после щелчка на кнопке Submit. Следует также иметь в виду, что такая проверка отличается от обычной фильтрации вводимых данных. Ведь фильтрация, по существу, изменяет значения в полях во время сохранения формы, чтобы удалить из них потенциально опасные символы.

Как пояснялось ранее в статьях нашего сайта, ни один из видов проверки достоверности данных не защищает полностью от злоумышленников. Рассматриваемый здесь вид проверки достоверности имеет большое значение для предоставления пользователям удобного интерфейса, но не избавляет от дополнительной проверки достоверности и фильтрации данных после предъявления формы, чтобы надежно защитить веб-сайт от внесения злонамеренного кода.

 


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости
Добавить комментарий


Защитный код