Валидация формы обратной связи.
На многих сайтах присутствует страница с формой обратной связи, элемент достаточно нужный и с этим трудно не согласиться. Давайте вместе создадим такую форму, позволим пользователю ввести в неё данные, проверим их на корректность и после этого отправим данные на сервер.
Прежде чем приступать работе, нужно ясно понять:
— что из себя будет представлять форма обратной связи;
— какие поля будет в себя включать;
— какие данные мы будем проверять и по какому критерию;
— какой лучше использовать метод и способ отправки данных формы на сервер.
Немного подумав, мы решили, что форма будет иметь следующие поля:
- имя — ведь нам нужно как-то обращаться к пользователю, когда мы будем писать ему ответ;
- электронная почта — мы же должны знать, куда отправлять ответ;
- тема сообщения — тоже необходимая информация, по ней мы определимся, кто будет отвечать на это письмо;
- текст сообщения — здесь комментарии излишни.
Сразу определимся, что все поля обязательны для заполнения и, соответственно, все они требуют проверки на корректность введённых данных.
Мы не будем подробно рассматривать этапы создания HTML вёрстки и оформления её стилями, т.к. наша главная задача — написать скрипт валидации введённых данных и отправить их на сервер. Поэтому сразу представим готовую разметку HTML и таблицу стилей для него с минимумом комментариев.
HTML-разметка формы обратной связи.
Отметим лишь один элемент данной формы:
В этот мы будем выводить красиво оформленное сообщение об ошибке.
Таблица стилей для формы обратной связи.
Представлены только стили, относящиеся непосредственно к самой форме обратной связи.
Очень важно.
Для уменьшения размера таблицы стилей, я не буду приводить свойства с вендорными префиксами, обеспечивающими кроссбраузерность. Не забывайте прописывать их при реализации своих проектов.
Критерии валидации формы обратной связи.
Прежде чем мы начнём писать скрипт валидации, давайте определимся, по каким критериям мы будем оценивать корректность введённых пользователем данных, какие данные мы будем считать валидными, а какие нет.
Во-первых , для всех полей формы проверяем заполнены они или нет. Это самая простая проверка.
Это очень важно.
Для следующих проверок будут использоваться регулярные выражения. Мы не будем разбирать, как составляются и работают регулярные выражения. Это отдельная и достаточно объёмная тема для разговора. О регулярных выражениях вы сможете прочитать здесь .
При написании скрипта валидации мы будем использовать уже готовые паттерны (шаблоны) RegExp.
Во-вторых , поле «Ваше имя». Давайте определимся, что мы ожидаем получить реальное имя человека на русском языке. Значит поступившие данные должны содержать только прописные и строчные буквы русского алфавита. Разрешим ещё и пробел — пользователь кроме имени может указать ещё и своё отчество. Наличие любых других символов приведёт к ошибке.
Паттерн RegExp для такой проверки будет выглядеть так: /^[а-яёА-ЯЁ\s]+$/ .
В-третьих , поле «Электронная почта». Здесь особых объяснений не нужно.
Паттерн RegExp для этого поля выглядит так:
/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z])+$/ .
В-четвёртых , поля «Тема сообщения» и «Текст сообщения». В этих полях допустимы любые символы. Более серьёзная проверка на спам и защита от хакеров осуществляется в php-скрипте, в который мы передадим данные формы, но это находится за пределами темы нашей статьи.
Начинаем писать Javascript валидации формы.
Для ограничения области видимости нашего скрипта и исключения конфликтов с другими js-скриптами, разместим код в анонимной самозапускающейся функции.
Форма обратной связи через Node.js
Всем привет, хочу поделиться рабочей формой обратной связи на node.js.
Для начала, создадим саму форму (Проект обязательно должен называться index.html):
Форма связи