Главная страница статей --> Программирование, заработок, оболочки

Проверка полей формы с помощью JavaScript

Источник: linuxcenter.ru

Посетители сайта — это наше всё. Их надо холить, лелеять, заботиться о них. А еще им нельзя доверять… Чтобы сайт не взломали, всегда и везде необходимо проверять введенные пользователем данные. Делать это лучше на сервере соответствующими средствами.

Проверка клиентским JavaScript легко обходится отключением js в браузере и предназначена она не для борьбы со злоумышленниками, а для помощи тем, кто случайно допустил ошибку. Тоже очень благородное занятие :)

Приближаться к высокому идеалу удобного веб-сайта мы будем на примере формы отзыва на e-mail.

<form name="mailer" id="mailer" action="/mail.php" method="post" onsubmit="return checkmailform();">
  E-mail отправителя:<br /> <input type="text" name="mailsender" id="mailsender" /><br />
  Текст письма:<br /> <textarea name="mailtext" id="mailtext" cols="35" rows="5"></textarea><br />
  <input type="submit" value="Отправить" />
</form>

Форма состоит из полей ввода e-mail отправителя и текста сообщения и кнопки отправки данных серверному скрипту mail.php. Для формы и полей данных в атрибутах id и name (они идентичны, name используется для обратной совместимости) указаны уникальные имена, которыми мы будем оперировать в программе на JavaScript.

С помощью события документа (action) onsubmit, возникающего при отправке формы, мы вызываем JavaScript функцию, которая и отвечает за проверку введенных пользователем данных.

function checkmailform()
{
  if ( (document.forms.mailer.mailsender.value == null) (document.forms.mailer.mailsender.value.length < 7) )
  {
    alert("Заполните поле: E-mail отправителя");
    document.forms.mailer.mailsender.focus();
    return false;
  }
  if (! (/^\w+[-_\.]*\w+@\w+-?\w+\.[a-z]{2,4}$/.test(document.forms.mailer.mailsender.value)) )
  {
    alert("Введите правильный e-mail адрес");
    document.forms.mailer.mailsender.focus();
    return false;
  }      
  if ( (document.forms.mailer.mailtext.value == null) (document.forms.mailer.mailtext.value.length < 10) )
  {
    alert("Заполните поле: Текст письма");
    document.forms.mailer.mailtext.focus();
    return false;
  }
  return true;
}

К данным XHTML-формы мы обращаемся в следующем формате: документ.все_формы.имя_формы(у нас это name="mailer").имя_поля. Добавление «.value» дает нам текст внутри указанного по имени элемента формы, а «.value.length» — длину этого текста в символах.

Функция делает 3 проверки:

  1. Введен ли вообще текст в поле «E-mail отправителя» и не меньше ли он 7 символов.
  2. Регулярным выражением проверяет, является ли адрес отправителя правильным e-mail адресом: имя@домен.зонадомена.
  3. Введен ли текст сообщения и не меньше ли он 10 символов.
Проверка

Если хотя бы одна из проверок не пройдена, работа скрипта останавливается, отправка данных формы на сервер отменяется, пользователь получает сообщение с ошибкой, а курсор клавиатуры помещается в поле формы, вызвавшее ошибку. Если проблем не обнаружено, JavaScript не мешает отправке данных на сервер.



Похожие статьи:
- Баннерное дело
- Шаблонный дизайн: два взгляда на проблему
- Perl и сокеты. Часть 1
- CSS верстка сайта: макет в три колонки
- Оформление текста с помощью CSS
- Партнерская программа системы бронирования отелей онлайн Horse21
- Повышаем юзабилити формы поиска
- Оптимизация сайта, продвижение и раскрутка — трактовка терминов
- OpenOffice 2.0 — что нового?
- Файловые системы
- Имитация гиперссылок с помощью JavaScript
- Геометрия модульной сетки
- Web 2.0 за окном


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |
Контакты
Редакция:
[0.001]