В процессе написания
своих расширений для CMS Joomla очень часто
приходится использовать html формы для
получения тех или иных данных от
пользователя и последующей их обработки.
Неправильно написанная форма может
запросто испортить впечателние о Вашем
сайте. До сих пор не редки случаи когда
пользователь, (при заполнении формы,
допустивший какую-либо незначительную
ошибку) после отправки формы, вынужден
набирать все заново. А между тем,
«прикрутить» валидацию к форме не так
уж сложно. Благо Joomla обладает всеми
необходимыми средствами, чтобы облегчить
жизнь разработчику. Итак начнем...
Все нижеизложенное, справедливо для Joomla2.5, хотя возможно и применимо для более поздних версий.
Бывают случаи, когда поле может оставаться пустым (читай необязательным к заполнению), но в случае его заполнения необходима проверка на содержание. Например...
Проверка на число
И в завершение, пожалуй стоит добавить, что для всех полей не прошедших ваплидацию Joomla добавляет класс invalid. В некоторых шаблонах этот класс встроен по умолчанию (напр. beez_20) Если таблицы стилей Вашего шаблона не содержат его — добавьте вручную следующий код:
Все нижеизложенное, справедливо для Joomla2.5, хотя возможно и применимо для более поздних версий.
- Подключаем файл
валидации validate.js, добавив в код строку
JHTML::_('behavior.formvalidation');
- Затем укажем скрипту, что необходимо обрабатывать именно эту форму, добавив соответствующий класс к тегу <form>
<form name="add_new_record" action="index.php" method="post">
- Далее устанавливаем соответствующий клас для всех полей формы нуждающихся в проверке данных перед отправкой.
Применение данного класса свидетельствует о том что данное поле должно быть обязательно заполнено или же (в случае с радио кнопками) какая-либо опция должна быть отмечена пользователем.<input type="text" name="item_name" size="10" value="" />
Бывают случаи, когда поле может оставаться пустым (читай необязательным к заполнению), но в случае его заполнения необходима проверка на содержание. Например...
Проверка на число
<input type="number" name="item_height" size="10" value="" />Проверка на E-mail
<input class="inputbox validate-email" type="text" name="email" value="">Если это поле обязательно к заполнению, то не трудно догадаться что код будет таким
<input class="inputbox required validate-email" type="text" name="email" value="">Вы можете использовать следующие классы:
- required
- validate-username
- validate-password
- validate-numeric
- validate-email
- Заключительным шагом построения формы будет присвоение класса кнопке Отправки формы.
<input validate" type="submit" name="items_cat">Если этого не сделать, то данные все равно будут отправлены в обработчик, несмотря на то, что подсветка неправильно заполненых полей работает.
И в завершение, пожалуй стоит добавить, что для всех полей не прошедших ваплидацию Joomla добавляет класс invalid. В некоторых шаблонах этот класс встроен по умолчанию (напр. beez_20) Если таблицы стилей Вашего шаблона не содержат его — добавьте вручную следующий код:
.invalid { border-color: red !important; }
Комментариев нет:
Отправить комментарий