Программирование > JavaScript & JScript
Бесконечные алерты
(1/1)
KhasDenis:
Задача - проверить значения заносимые пользователем в форму.
Форма + обработчик ниже:
<html>
<head>
<script language="JavaScript">
function validateName(name) {
alert("validateName function has been called");
if (name.value.length == 10) {
return true;
} else {
alert("Invalid name format");
name.focus();
return false;
}
}
function validateString(string) {
var template = /\\d{7}/;
result = string.value.match(template);
if(result == null){
alert("Invalid string format. Must be 7 digit");
string.focus();
return false;
}
}
</script>
</head>
<form action method="post">
Name: <input type="text" name="name" onBlur="validateName(this)">
String: <input type="text" name="string" onBlur="validateString(this)">
Name2: <input type="text" name="name2" onBlur="validateName(this)">
Address: <input type="text" name="address">
<input type="submit" name="submit" value="Submit">
</form>
</html>
Я ввожу в первое поле неправильное значение, кликаю таб. И дальше только сижу и тыкаю "OK" на алертах.
Что у меня не так? Когда лучше проверять значения на правильность (onBlur, onChange, onSubmit)?
Спасибо заранее ...
Макс:
я предпочитаю делать через событие onsubmit.
Примеров на этом форуме я привел достаточно.
Nickii:
Вообще-то при вызове alert\'a элемент тоже теряет фокус (замкнутый круг какой-то получается :).
Таким образом ты должен придумать автоматическую замену не правильной комбинации или
--- Цитировать ---делать через событие onsubmit
--- Конец цитаты ---
второй вариант попробуй установить дополнительный флаг изменения строки
третий вариант поставить проверку не на onBlur а на onChange
четвертый вариант поставить проверку на onKeyDown
пятый вариант... Думаю пока достаточно будет.
P.S. Примени мозги по назначению... :)
И кстати проверь на существование функцию focus, я не помню, вдруг focused?
Навигация
Перейти к полной версии