Проблемы 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,
А где элемент id = 'errors' ? |
Это просто отладка - можно заменить его алертом. Что в лоб, что по лбу.
Полдня убил, ничего не нашёл... Сделал по-другому. |
Ordinatuer,
Не нужно использовать в качестве имени элемента массива обьект a = document.getElementById('name'); toString = [object HTMLInputElement] b = document.getElementById('email'); toString = [object HTMLInputElement] c = document.getElementById('text'); toString = [object HTMLTextAreaElement] отсюда sizeError[b] = sizeError[a] |
Дюже долгая подготовка к анализу полей... Как вариант вообще все анализировать в онсубмит...
|
Да, действительно... Надо бы мне в учебных материалах тереться, а не тут. Спасибо за участие.
|
| Часовой пояс GMT +3, время: 00:12. |