Проверка правильности заполнения формы вариант №2Сегодня я хочу продолжить тему проверки заполнения форм. Ранее, в заметке “Проверка правильности заполнения формы” я приводил пример наиболее простого способа предупреждения пользователя о ошибках, представляю вашему вниманию более “продвинутый” способ проверки с помощью JavaScript, который в случае неверного заполнения будет выводить “Alert” окно с подсказками на какие поля обратить внимание.

Пример формы обратной связи с сайта…
<FORM action="mail.php" method="post" name="forma" onsubmit="return check();">
<table>
<tr>
<td>
<table width="100%">
<tr>
<td>ФИО* :</td>
<td align="right"><input type="text" value="" name="fio" maxlength="260"></td>
</tr>
<tr>
<td>E-mail* :</td>
<td align="right"><input type="text" value="" name="email" maxlength="260"></td>
</tr>
<tr>
<td>Телефон:</td>
<td align="right"><input type="text" value="" name="telefon" maxlength="100"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>Текст сообщения* :</td>
</tr>
<tr>
<td><TEXTAREA name="data" wrap="hard"></TEXTAREA></td>
</tr>
<tr>
<td><input type="Submit" value="Отправить" name="submit"></td>
</tr>
</table>
<p>* Поля, обязательные для заполнения</p>
</FORM>
Данная форма выглядит следующим образом…

В данной форме у нас имеются поля с именами “fio, email и data” которые и проверяет ниже приведенный скрипт.
Далее сам JavaScript проверки заполнения полей.
function check()
{
arr_field=new Array("fio","email","data");
arr_desc_field=new Array("Ф.И.О.","E-mail","Текст сообщения");
mail=document.forms['forma'].elements['email'];
error="";
for(i=0;i
{
if(document.forms['forma'].elements[arr_field[i]].value=='')
{
if(error=='')
document.forms['forma'].elements[arr_field[i]].focus();
error+="-"+arr_desc_field[i]+"n";
}
}
if(error=="")
{
if (! mail.value.match ( /^[w_-.^]+@[w]([w-_.]*w)?.[w]+$/ ) )
{
alert("Некорректно заполнено поле E-mail");
mail.focus();
return false;
}
else
{
return true;
}
}
alert("Пожалуйста, заполните слудующие поля:n"+error);
return false;
}
Особенностью данного скрипта является то, что в нем реализована более менее нормальная проверка корректного ввода почтового ящика, т.е. корректного с точки зрения написания.
17-04-08 23:04:52 Написать комментарийВНИМАНИЕ: Все поля необходимо заполнить |
Артём Курапов - 18-04-08 18:04:33
Я думаю что полезна также и проверка на серверной части через ajax, например что-бы проверить сущестование домена в мэйле. Или например что-бы комментарий не публиковался повторно (иметь минимальный период публикации у пользователя). Плюс это сразу ограничит спаммеров - без подтверждения серверной части нельзя публиковать дальше ответ.. нужна поддержка ajax