Динамическая проверка формы на JavaScript
Если Вы не хотите мучить своих пользователей лишними перезагрузками страницы и не хотите лишний раз нагружать сервер, то перед отправкой форм на сервер, их надо обязательно проверить через JavaScript. И в этот раз мы обсудим динамическую проверку формы на JavaScript.
Начнём мы с HTML-формы:
<form name="myform" action="#" method="post">
<p>Логин: <input type="text" name="login" onkeyup="check(this.value)" /> <span id="e_login" style="display: none; color: #c00;">Логин введён неправильно</span></p>
</form>
Ключевой момент - это обработчик события onkeyup. Событие keyup отвечает за отпускание клавиши. Обратите внимание, что очень часто ставят onkeypress или onkeydown - это неправильно, так как будет происходить отставание на 1 шаг. Рекомендую попробовать поставить, например, onkeypress и проанализировать результат.
JavaScript-код тоже очень простой:
<script type="text/javascript">
function check(login) {
if (login.length < 3) document.getElementById("e_login").style.display = "inline";
else document.getElementById("e_login").style.display = "none";
}
</script>
В функции check() мы проверяем длину логина, и если она меньше 3-х символов, то мы выводим ошибку (делая соответсвующий элемент видимым), иначе прячем это сообщение.
Аналогично, можно проверять абсолютно любые формы. Также не забывайте, что перед отправкой надо целиком проверить ещё раз всю форму. Делается это через onsubmit у тега form. И всегда помните, что проверка формы на JavaScript не отменяет проверку формы в PHP.
-
- Михаил Русаков
Комментарии (8):
Спасибо за статью. Очень полезный материал. В коде пропущен тег </span>
Ответить
Спасибо, исправил!
Ответить
Статья очень пригодилась
Ответить
Статья очень полезная. Хотелось бы, чтобы была статья, где подробно бы указывалось, как реализовать более расширенную динамическую проверку формы - что-то вроде регистрации на Вашем сайте! Спасибо.
Ответить
Ни в коем случае не нужно это делать. Уже есть много статей, где подробно рассказывается обо всём, что нужно знать и применять в JavaScript. В этой статье даже показали, как сделать проверку формы. Изучив все статьи у Михаила, вы сможете сделать всё, что захотите. А какой смысл каждый случай рассматривать отдельно? А если вы захотите изменить что-то в своей форме, то что, снова Михаилу писать с просьбой о статье?
Ответить
VLAD, создание регистрации - очень трудный процесс для новичков. Создавая скрипты PHP для проверки и отправки формы, уходит много времени, и не всегда удаётся сделать всё правильно. Динамическая проверка формы - это хорошо. Но материалы из этой статьи могут принести гораздо больше пользы, если будут совокупляться с другими материалами, объединёнными рассмотрением одного-единственного случая.
Ответить
Здравствуйте Михаил, мне бы хотелось знать. Вот например неправильно ввел логин, но что ему мешает отправить данные на сервер, тупо нажав на enter. Так не могли бы вы пожалуйста написать еще, как предотвратить отправку данных на сервер, если неправельно введены данные ( между прочим у вас на сайте эта вещь реализованна )
Ответить
На сервере надо проверять обязательно. На JS проверять надо исключительно ради удобства пользователя, а не ради безопасности.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.