Программирование > 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?

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии