Показать сообщение отдельно

  #8  
Старый 08.03.2009, 15:00
initab
Новичок
Регистрация: 25.01.2009
Сообщений: 4
С нами: 9101818

Репутация: 1
По умолчанию

Цитата:
Сообщение от VaTTka  
Знаю что тема заезженная, но на форуме по поиску не нашел. Как проверить поля на соответствие?
Тоесть чтоб в поле e-mail вводили мыло, и т.п. Чтобы поля не были пустыми. Вроде слышал что нужен AJAX скрипт. Подскажите пожалуйста.
п.с. насчет этого никто не поможет? http://forum.antichat.ru/showpost.php?p=1155867&postcount=9314
Делается это вот так:
Код:
<HTML>
<head>
<SCRIPT LANGUAGE="JavaScript">
function checkIt() {

//Проверка поля mail формы form1
if (document.forms.form1.mail.value != "") {
} else {
alert("Не заполнено поле \"Мыло\" в форме. \n\nПожалуйста, введите мыло.");
document.forms.form1.mail.focus();
return false;
}

//Сюда можно вставить проверку других полей

return true;
}
</SCRIPT>

</head>
<body>
<form action="" method="GET" name="form1">
Мыло:  <input type="text" name="mail" value="" size="30" />
<input type="submit" value="Отправить" onclick="return checkIt()"/>
</form>
</body>
</HTML>
Поясню, как это работает:
При нажатии кнопки отправить вызывается функция ChekIt(), если она возвращает True, то данные отправляются, в противном случаи - нет.
В функции ChekIt() необходимо проверить каждое поле на "заполненность":
Код:
if (document.forms.form1.mail.value != "") {
} else {
alert("Не заполнено поле \"Мыло\" в форме. \n\nПожалуйста, введите мыло.");
document.forms.form1.mail.focus();
return false;
}
В том порядке, в котором ты хочешь, чтобы возвращались сообщения об ошибках, если не заполнено несколько полей. Этот кусок кода проверяет, заполнено ли поле mail, и, если нет, сообщает об ошибке, переводит курсор в это поле и возвращает False, чтобы форма не отправлялась на сервер. Для обработки других полей скопируй этот кусок кода столько раз, сколько необходимо. Только не забудь исправить имя поля (в ДВУХ местах) и поправить текст сообщения.
Ну и в конце функции, если все поля успешно заполнены, то возвращаем true.

Последний раз редактировалось initab; 08.03.2009 в 17:05..
 
Ответить с цитированием