powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JavaScript) Выкидывает из функции на первой же строке
9 сообщений из 9, страница 1 из 1
(JavaScript) Выкидывает из функции на первой же строке
    #35789900
Fuse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в том, что после захода в функцию проверки, происходит выход из неё сразу же после первой строки... Причём сценарий почему-то выполняет submit.
Кто-нибудь может подсказать в чем может заключаться ошибка? :(


Скрипт располагается в разделе head:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<script language="javascript" type="text/javascript">
<!--
	function CheckConditions()
	{
		var is_error = false;
		var email_check = new RegExp("[0-9a-z_-]+[@]+[0-9a-z_-^.]+.[a-z]{2,3}","i");
		
		if (!(email_check.test(document.frm_message.email.value)))
		{
			is_error = true;
			document.getElementById("errorEMail").style.display = "block";
		}
		else
		{
			document.getElementById("errorEMail").style.display = "none";
		}
		if ((document.frm_message.name.value == "") || (document.frm_message.email.value == "") ||
		    (document.frm_message.subject.value == "") || (document.frm_message.enquiry.value == ""))
		{
			is_error = true;
			document.getElementById("errorFields").style.display = "block";
		}
		else
		{
			document.getElementById("errorFields").style.display = "none";
		}

		if (!is_error) {
			document.frm_message.submit();
		}
	}
//-->
</script>
Форма выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
<form action="contact_us_processor.php" method="post" name="frm_message" id="frm_message">
                    <table width="100%" border="0" cellpadding="2" cellspacing="5">
					  <tbody>					  <tr>
						<td class="inputRequirement">* - поля обязательные для заполнения</td>
					  </tr>
					  <tr>
						<td class="main">Полное имя:<strong class="inputRequirement">*</strong></td>
					  </tr>
					  <tr>
						<td class="main"><input id="name" name="name" type="text"></td>
					  </tr>
					  <tr>
						<td class="main">Ваш адрес эл. почты:<strong class="inputRequirement">*</strong></td>
					  </tr>
					  <tr>
						<td class="main"><input id="email" name="email" type="text"></td>
					  </tr>
					  <tr>
						<td class="main">Тема сообщения:<strong class="inputRequirement">*</strong></td>
					  </tr>
					  <tr>
						<td class="main"><input id="subject" name="subject" type="text"></td>
					  </tr>
					  <tr>
						<td class="main">Текст сообщения:<strong class="inputRequirement">*</strong></td>
					  </tr>
					  <tr>
						<td><textarea id="enquiry" name="enquiry" wrap="soft" cols="50" rows="15"></textarea></td>
					  </tr>
					</tbody></table>
					<table width="100%" border="0" cellpadding="0" cellspacing="0">
						<tbody><tr><td><img src="images/pixel_trans.gif" alt="" width="100%" border="0" height="10"></td></tr>
					</tbody></table>
					<table width="100%" border="0" cellpadding="2" cellspacing="0">
						  <tbody><tr>
							<td width="10"><img src="images/pixel_trans.gif" alt="" width="10" border="0" height="1"></td>
							<td class="bg_input" align="right"><input type="image" title=" Отправить " src="images/buttons/button_send.gif" alt="Отправить" width="73" height="20" border="0" onclick="CheckConditions();"></td>
							<td width="10"><img src="images/pixel_trans.gif" alt="" width="10" border="0" height="1"></td>
						  </tr>
					</tbody></table></form>
...
Рейтинг: 0 / 0
(JavaScript) Выкидывает из функции на первой же строке
    #35789952
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Консоль ошибок указывает на проблемное место:

> "[0-9a-z_-]+[@]+[0-9a-z_-^.]+.[a-z]{2,3}"

Оно немного иначе пишется:
Код: plaintext
"^[0-9a-z_-]+@[0-9a-z-]+\\.[a-z]{2,3}$"
(нижнее подчёркивание в имени домена не допускается, разделителем должна быть точка, а не любой символ). Впрочем, есть ещё ограничение на использование "-", он не должен быть первым или последним, в имени пользователя допускается точка.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
(JavaScript) Выкидывает из функции на первой же строке
    #35789961
Fuse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
регулярное выражение я уже исправил. тестил JavaScript Debugger что в ФФ.
Теперь проходит нормально, первые условия вроде срабатывают,
поражает, что последнее условие
Код: plaintext
1.
2.
if (!is_error) {
    document.frm_message.submit();
}
срабатывает даже когда is_error = true; и соответственно срабатывает сабмит
как так?
...
Рейтинг: 0 / 0
(JavaScript) Выкидывает из функции на первой же строке
    #35789970
VxS_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fuse,
может дело не в условии, а в том, что type="image" по дефолту сабмититься и ему плевать на результат вашей функции?
...
Рейтинг: 0 / 0
(JavaScript) Выкидывает из функции на первой же строке
    #35790032
Fuse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VxS_
может дело не в условии, а в том, что type="image" по дефолту сабмититься и ему плевать на результат вашей функции?
Вы правы, когда поменял type на button все заработало.
Но как быть, мне нужна кнопка именно с картинкой иначе это нарушит дизайн. Как при type="image" отменить сабмит по дефолту?
...
Рейтинг: 0 / 0
(JavaScript) Выкидывает из функции на первой же строке
    #35790039
Fuse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все проблему решил, большое спасибо за помощь!!!
изменил onClick на
Код: plaintext
onclick="CheckConditions(); return false;"
...
Рейтинг: 0 / 0
(JavaScript) Выкидывает из функции на первой же строке
    #35790131
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FuseVxS_
может дело не в условии, а в том, что type="image" по дефолту сабмититься и ему плевать на результат вашей функции?
Вы правы, когда поменял type на button все заработало.
Но как быть, мне нужна кнопка именно с картинкой иначе это нарушит дизайн. Как при type="image" отменить сабмит по дефолту?

в таких случаях надо как минимум использовать return CheckConditions()
...
Рейтинг: 0 / 0
(JavaScript) Выкидывает из функции на первой же строке
    #35790137
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frenzy return CheckConditions()
Это в том случае, если CheckConditions возвращает true или false. А так, вполне сойдёт.
...
Рейтинг: 0 / 0
(JavaScript) Выкидывает из функции на первой же строке
    #35790155
Фотография Frenzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeFrenzy return CheckConditions()
Это в том случае, если CheckConditions возвращает true или false. А так, вполне сойдёт.

естественно. это я к тому как сделать, чтобы "ему не было плевать на результат функции".
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JavaScript) Выкидывает из функции на первой же строке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]