Показать сообщение отдельно
  #1 (permalink)  
Старый 05.12.2010, 05:54
Новичок на форуме
Отправить личное сообщение для Ordinatuer Посмотреть профиль Найти все сообщения от Ordinatuer
 
Регистрация: 05.12.2010
Сообщений: 3

Проблемы JS при проверке полей формы
Здравстуйте!
Имеется небольшая форма:

<form>
<input type="text" name="name" id="name" value="Ваше имя" size="20" onblur="checkThis(a)" />
<span id="nameError"></span><br />
<input type="text" name="email" id="email" value="Ваш email" size="20" onblur="checkThis(b)" />
<span id="emailError"></span><br />
<textarea name="text" id="text" onblur="checkThis(c)">Текст Вашего сообщения</textarea>
<span id="textError"></span><br />
<input type="submit" value="Оставить сообщение" />
</form>


и вот такой страшный скрипт проверки:

var sizeError = new Array();
var voidError = new Array();
var fieldError = new Array();
var defVal = new Array();
 
        a = document.getElementById('name');
        b = document.getElementById('email');
        c = document.getElementById('text');
        sizeError[a] = "Длина имени должна быть менее 10 символов",
        voidError[a] = "Пустое имя недопустимо",
        fieldError[a] = "nameError",
        defVal[a] = "Ваше имя",
            
        sizeError[b] = "Длина электронного адреса не более 30 символов",
        voidError[b] = "Введите Ваш электронный адрес",
        fieldError[b] = "emailError",
        defVal[b] = "Ваш email",
        
        sizeError[c] = "Сообщение не длиннее 255 символов",
        voidError[c] = "Пустое сообщение недопустимо",
        fieldError[c] = "textError",
        defVal[c] = "Текст Вашего сообщения";
        
function checkThis(x) { 
                          alert(sizeError[x]+"\n"+voidError[x]+"\n"+fieldError[x]+"\n"+defVal[x]);
    if ((x.value.length)>3) {
        document.getElementById(fieldError[x]).innerHTML = sizeError[x];
      }
    if ((x.value) == "")  {
        document.getElementById(fieldError[x]).innerHTML = voidError[x];
      }
    if ((x.value) == defVal[x]) {
        document.getElementById(fieldError[x]).innerHTML = voidError[x];
 
      }
    }


Проблема: onblur на инпуте "name" работает абсолютно также, как на "email".
На "text" при этом работает как надо.

Последний раз редактировалось Ordinatuer, 05.12.2010 в 19:41.
Ответить с цитированием