Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Не работает скрипт проверки формы (https://javascript.ru/forum/css-html-firefox-mizilla/9780-ne-rabotaet-skript-proverki-formy.html)

infocean 05.06.2010 11:26

Не работает скрипт проверки формы
 
Здравствуйте, Гуру Явы! :)

У меня возникла проблемка с самописным скриптом, работает везде (т.е. в: 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>&nbsp;</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>


Заранее благодарен за помощь.

x-yuri 05.06.2010 12:00

посмотри в консоль ошибок

infocean 05.06.2010 12:04

там пусто, есть только вот такая запись:
PluralForm.jsm: Index #2 of 'Был достигнут лимит журнала сообщений Firebug. 0 вхождение не отображается.;Был достигнут лимит журнала сообщений Firebug. Не отображается 0 вхождений.' for value 0 is invalid -- plural rule #7; called by $STRP

x-yuri 05.06.2010 12:15

ну тогда что значит не работает? Это загадка, которую мы должны отгадать?

infocean 05.06.2010 12:19

Цитата:

Сообщение от x-yuri (Сообщение 57984)
ну тогда что значит не работает? Это загадка, которую мы должны отгадать?

Просто не реагирует на тесты.
Например: если ни чего не ввести и нажать кнопку "Отправить", то ноль реакции.
Например_2: ввести неправильные данные и нажать на кнопку "отправить", то также ноль реакции, форму не проверяет и не отправляет. :(

x-yuri 05.06.2010 12:28

вообще я больше доверяю консоли ошибок firefox (в меню инструменты). И как я понял при нажатии на Отправить ошибки не появляются...

тогда
либо c помощью console.log выводишь отладочные сообщения в консоль firebug и смотришь, что там не так идет

либо пишешь где-нибудь в обработчике debugger (этот оператор приостанавливает выполнение скрипта и вызывает отладчик) и пошагово проходишься по коду

либо на вкладке скрипты есть кнопка Прервать на следующем (как-то так)

infocean 05.06.2010 12:35

Цитата:

Сообщение от x-yuri (Сообщение 57987)
вообще я больше доверяю консоли ошибок 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.