Показать сообщение отдельно
  #1 (permalink)  
Старый 04.01.2009, 18:57
Интересующийся
Отправить личное сообщение для vovasvv Посмотреть профиль Найти все сообщения от vovasvv
 
Регистрация: 01.11.2008
Сообщений: 14

валидация формы (продолжение)
по Googlу "валидация формы" я нашел и переделал (как смог, к сожалению я далеко не гуру в яве Sad) под себя такой скрипт:

<script type="text/javascript" language="javascript">
function checkForm(form) {
// Заранее объявим необходимые переменные
var el, // Сам элемент
elName, // Имя элемента формы
value, // Значение
type; // Атрибут type для input-ов
// Массив списка ошибок, по дефолту пустой
var errorList = [];
// Хэш с текстом ошибок (ключ - ID ошибки)
var errorText = { 
5 : "поле 'Код': д.б. трехзначный числовой",
6 : "поле 'телефон': должен содержать 7 цифр"
}
// Получаем семейство всех элементов формы
// Проходимся по ним в цикле
for (var i = 0; i < form.elements.length; i++) {
el = form.elements[i];
elName = el.nodeName.toLowerCase();
value = el.value;
if (elName == "input") { // INPUT
// Определяем тип input-а
type = el.type.toLowerCase();
// Разбираем все инпуты по типам и обрабатываем содержимое
switch (type) {
case "text" : 
if (el.name == "Sfone" && (document.forma.Sfone.value.length < 3)||isNaN(document.forma.Sfone.value)) errorList.push(5);
if (el.name == "Lfone" && (document.forma.Lfone.value.length < 7)||isNaN(document.forma.Lfone.value)) errorList.push(6);
break; 
}
}
}
// Финальная стадия
// Если массив ошибок пуст - возвращаем true
if (!errorList.length) return true;
// Если есть ошибки - формируем сообщение, выовдим alert
// и возвращаем false
var errorMsg = "При заполнении формы допущены следующие ошибки:\n\n";
for (i = 0; i < errorList.length; i++) {
errorMsg += errorText[errorList[i]] + "\n";
}
alert(errorMsg);
return false;
}
</script> --->


моя форма
<form name="forma" method="post" onsubmit="return checkForm(this);"> 

<p>Контактный мобильный телефон(10зн)*: +7-
<input type="text" name="Sfone" maxlength="3">-<input type="text" name="Lfone" maxlength="7"> "?"</p>

<input type="submit" name="submit" value="Ввести">
</form>


Если Вам не сложно, посмотрите пожалуйста следующий момент -
при введениеи в поля: <input type="text" name= "Sfone"> и <input type="text" name= "Lfone"> ЦИФР не удовлетворяющих условию - сообщение об ошибке выводится корректно, НО при введении БУКВ почему-то "сообщение об ошибке" циклится и выводится 7 раз, почему? Как изменить код чтобы избежать этого.
Спасибо!

Последний раз редактировалось Андрей Параничев, 05.01.2009 в 21:21. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием