Не работает скрипт проверки формы
Здравствуйте, Гуру Явы! :)
У меня возникла проблемка с самописным скриптом, работает везде (т.е. в: Opera 10.53; IE 8.0.6001; Chrome 5.0.375), кроме браузера Mozilla Firefox 3.6.3. Помогите, пожалуйста, понять, почему не работает и заодно если не сложно, то проверьте корректность написания скрипта(в javascript я не силён, но пытаюсь научиться :)) Ниже код скрипта и формы: <script language="javascript" type="text/javascript"> function checkmailform() { var youname = document.getElementById('youname'); var youemail = document.getElementById('youemail'); var tema = document.getElementById('tema'); var message = document.getElementById('message'); if ( youname.value == "" ){ checktext.innerText = "Заполните поле: Ваше Имя"; return false; } if (! (/['А-я']/.test(youname.value)) ){ checktext.innerText = "Ваше Имя должно состоять только из русских букв"; youname.focus(); return false; } if ( youemail.value == "" ){ checktext.innerText = "Заполните поле: E-mail отправителя"; return false; } if (! (/^\w+[-_\.]*\w+@\w+-?\w+\.[a-z]{2,4}$/.test(youemail.value)) ){ checktext.innerText = "Введите правильный e-mail адрес"; youemail.focus(); return false; } if ( tema.value == "" ){ checktext1.innerText = "Заполните поле: Тема сообщения"; return false; } if (! (/['А-я']/.test(tema.value)) ){ checktext.innerText = "Тема сообщения может состоять только из русских букв"; tema.focus(); return false; } if ( message.value == "" ){ checktext.innerText = "Заполните поле: Текст сообщения"; return false; } return true; } </script> <form id="sendmail" name="sendmail" action="" method="post" onsubmit="return checkmailform();"> <table style="width: 100%;"> <tr> <td>Ваше Имя:</td> <td style="width: 273px"> <input name="youname" id="youname" style="width: 150px" type="text" /></td> <td rowspan="7" style="width: 273px" valign="top"> <div id="checktext" name="checktext" style="text-align: left; color: #FF0000; font-size: 12px;"> </div> </td> </tr> <tr> <td>Ваш e-mail:</td> <td style="width: 273px"> <input name="youemail" id="youemail" style="width: 180px" type="text" /></td> </tr> <tr> <td>Тема:</td> <td style="width: 273px"> <input name="tema" id="tema" style="width: 230px" type="text" /></td> </tr> <tr> <td>Сообщение:</td> <td style="width: 273px"> <textarea name="message" id="message" style="width: 320px; height: 160px"></textarea></td> </tr> <tr> <td> </td> <td style="width: 273px"> <input name="submit" style="width: 95px" type="submit" value="Отправить" /></td> </tr> </table> <input name="send" type="hidden" value="send" /></form> Заранее благодарен за помощь. |
посмотри в консоль ошибок
|
там пусто, есть только вот такая запись:
PluralForm.jsm: Index #2 of 'Был достигнут лимит журнала сообщений Firebug. 0 вхождение не отображается.;Был достигнут лимит журнала сообщений Firebug. Не отображается 0 вхождений.' for value 0 is invalid -- plural rule #7; called by $STRP |
ну тогда что значит не работает? Это загадка, которую мы должны отгадать?
|
Цитата:
Например: если ни чего не ввести и нажать кнопку "Отправить", то ноль реакции. Например_2: ввести неправильные данные и нажать на кнопку "отправить", то также ноль реакции, форму не проверяет и не отправляет. :( |
вообще я больше доверяю консоли ошибок firefox (в меню инструменты). И как я понял при нажатии на Отправить ошибки не появляются...
тогда либо c помощью console.log выводишь отладочные сообщения в консоль firebug и смотришь, что там не так идет либо пишешь где-нибудь в обработчике debugger (этот оператор приостанавливает выполнение скрипта и вызывает отладчик) и пошагово проходишься по коду либо на вкладке скрипты есть кнопка Прервать на следующем (как-то так) |
Цитата:
Теперь в консоле появилась такая запись: Ошибка: checktext is not defined Источник: http://site.ru/sendmail.php Строка: 115 Если щёлкнуть по источнику, то открывается исходный код, с выделенной строчкой: checktext.innerText = "Заполните поле: Ваше Имя"; Еххууу)))Заработало... Я забыл создать переменную "checktext", а также только что вычитал, что Firefox не понимает innerText, надо использовать innerHTML. Огромное Вам спасибо за потраченное на меня время и помощь. |
Часовой пояс GMT +3, время: 13:36. |