Не работает скрипт проверки формы
Здравствуйте, Гуру Явы! :)
У меня возникла проблемка с самописным скриптом, работает везде (т.е. в: 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, время: 06:54. |