Проблемы 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, время: 05:00. |