Суббота, 20.04.2024, 15:12
Приветствую Вас Гость | RSS
Главная | БЛОГ | Регистрация | Вход
Меню сайта
Форма входа
Категории раздела
WEB-Дизайн [2]
HTML, CSS, JAVA-Script
PHP [2]
Описание языка, скрипты, работа с MySQL
Технология .NET [6]
C#, ASP, основные принципы
Операционные системы [1]
Linux [1]
Все о Linux.
Бытиё [1]
Моя жизнь, мысли, переживания и размышления...
Поиск
Календарь
«  Март 2009  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031
Архив записей
Наш опрос
На каком языке вы предпочитаете программировать?
Всего ответов: 791
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Блог йуного кодера
Главная » 2009 » Март » 17 » Проверяем формы с помощью JavaScript
22:04
Проверяем формы с помощью JavaScript
При разработке HTML страниц, содержащих формы ввода всегда необходимо помнить, что могут присутствовать поля, неверное заполнение которых может привлечь ошибки на сервере или дальнейшие проблемы с выводом информации. Например, при незаполненном поле LOGIN в страницы регистрации, могут возникнуть большие проблемы при авторизации пользователя.

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

В нашей форме будут присутствовать 3 поля ввода: Имя, E-mail, и сам комментарий. А также одна кнопка для подтверждения ввода. Код будет следующим:

<form action="" name="contactForm" onsubmit="return checkform(this)">
<table>
            <tr>
                       <td>Имя</td>
                       <td><input type="text" name="name"></td>
            </tr>
            <tr>
                       <td>E-mail</td>
                       <td><input type="text" name="email"></td>
            </tr>
            <tr>
                       <td>Комментарий</td>
                       <td><input type="text" name="comment"></td>
            </tr>
</table>
<input type="submit" value="OK">
</form>Syhi-подсветка кода

Для начала рассмотрим функцию, которая проверяет, что бы абсолютно все поля были заполнены:

<script type="text/javascript">
function checkform(f) {
      var err = "";
      for (var i=0; i<f.elements.length; i++){
        if (f.elements[i].value == ""){
                  err += "  " + f.elements[i].name + "\n";
        }
      }
      if(err!=""){
             alert("Вы заполнили не все формы:\n" + err);
              return false;
      }
}
</script>Syhi-подсветка кода

Функция checkform имеет входящий параметр f, который определяет название формы, с которой мы работаем. В данном случае у нас этот параметр равен this (" onsubmit="return checkform(this)"). Заводим переменную err, в которую мы будем записывать название незаполненных полей. Далее создаем цикл, который будет обходить все поля формы, и в нем уже поочередно проверяем пустое у нас поле или нет. Если поле пустое, то в переменную err добавляем его имя. Если не пустое, то цикл переключается на следующее, переменная остается не тронутой. После прохождение цикла у нас проверяется переменная err. В случае, если она не пустая, у нас выводится предупреждение с текстом и названиями незаполненных полей. Это наипростейшая функция проверки всех полей в одном цикле. По-моему мнению она не сильно информативна для пользователей, но для ознакомления все же подходит.

Для большей информативности можно проверять каждое поле по отдельности и выводить для них особые предупреждения. Например:

function checkform2(f) {
    if (f.elements[0].value == "")
    {
        alert("Вы не ввели имя");
        return;
    }
    if (f.elements[1].value == "")
    {
        alert("Вы не ввели E-mail");
        return;
    }
    if (f.elements[2].value == "")
    {
        alert("Вы не ввели текст комментария");
        return;
    }           
}Syhi-подсветка кода

Тут, как видно, текст «алерта» индивидуален для каждого поля. Да, и еще не забывайте менять названия функции в методе формы onSubmit (return checkform2(this)). Извращаться над подобными проверками можно сколько душе угодно. Рассмотрим парочку интересных вариантов:

Необходимо, что бы длина имени не превышала 5 символов:

if (f.elements[0].value.length < 5){
        alert("Имя должно быть больше 5 символов");
        return;
}Syhi-подсветка кода

Здесь мы проверяем что бы количество символов (length) было больше 5.

Необходимо, что бы запись «мыла» имела «правильную форму». Например hitechnt@gmail.com:

value = f.elements[1].value;
reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
if (!value.match(reg)) {
      alert("Пожалуйста, введите свой настоящий e-mail");
      return false;
}Syhi-подсветка кода

Разберем этот кусок кода. Value – это значение нашего поля e-mail. Reg – регулярное выражение, с помощью которого мы как раз и узнаем, корректный адрес почты у нас указан или нет. Заострять внимание в данной статье на них я не буду, лучше позже уделю им отдельный пост (как будет время =)). Затем у нас идет проверка на корректность с помощью функции match. Соответственно, если поле проверку не проходит, то выдается ошибка.

В общем вариантов существует множество: правильность ввода паролей, подтверждения паролей, ввода названия сайтов и т.д. В этой статье я рассмотрел лишь базу.

Категория: WEB-Дизайн | Просмотров: 2500 | Добавил: dblog | Рейтинг: 5.0/1
Всего комментариев: 2
1 Кристина  
0
спасибо, отличный материал новичку в помощь :)

2 nuriTruridway  
0
Впечатлен

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Бесплатный хостинг uCozCopyright MyCorp © 2024