Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2018, 20:33   #1
selfshelly
Новичок
Джуниор
 
Регистрация: 25.10.2018
Сообщений: 2
По умолчанию не выполняется submit

Привет всем! Прошу помощи так как сама уже 5 день не могу найти, в чем проблема. Программист я по необходимости, кое-какие навыки программирования имею, из-за необходимости приходится их совершенствовать. Имеется у меня сайт на CMS Joomlaс компонентом магазина Virtuemart. Так вот, в этом виртумарте у каждого товара была кнопочка "Задать вопрос по товару", которая отправляла заполненную форму мне на почту. Теперь письма не приходят. Пытаясь разобраться, в чем проблема, пришла к выводу, что не обрабатывается запрос submit в скрипте. Но почему он не обрабатывается и где дальше искать - ума не приложу. Если кто может - помогите пожалуйста найти проблему.
Вот код, в котором не выполняется submit.
Код:
	
<script type="text/javascript">
	function validateEnquiryForm() {
		if ( ( document.emailForm.text.value == "" ) || ( document.emailForm.email.value.search("@") == -1 ) || ( document.emailForm.email.value.search("[.*]" ) == -1 ) ) {
			alert( "<?php echo $VM_LANG->_('CONTACT_FORM_NC',false); ?>" );
		} else if ( ( document.emailForm.email.value.search(";") != -1 ) || ( document.emailForm.email.value.search(",") != -1 ) || ( document.emailForm.email.value.search(" ") != -1 ) ) {
			alert( "You cannot enter more than one email address" );
		} else {
			
			document.emailForm.action="<?php echo sefRelToAbs("/index.php"); ?>"
			document.emailForm.submit();
		}
	}
	</script>
Да, вместо того, чтобы показать мне сообщение о том, что запрос отправлен, открывается главная страница .

Последний раз редактировалось selfshelly; 25.10.2018 в 23:38.
selfshelly вне форума Ответить с цитированием
Старый 25.10.2018, 23:43   #2
selfshelly
Новичок
Джуниор
 
Регистрация: 25.10.2018
Сообщений: 2
По умолчанию

Ура! Вопрос решен!
Сайт долгое время работал по адресу www.mysite.ru/index.php
Я сделала недавно редирект с www.mysite.ru/index.php на www.mysite.ru и поэтому этот код начал глючить. Оказывается, там вообще не нужна вот эта строчка
document.emailForm.action="<?php echo sefRelToAbs("/index.php"); ?>" и нужна дополнительная скобка }. Т.е. правильный код такой:
Код:
	<script type="text/javascript">
	function validateEnquiryForm() {
		if ( ( document.emailForm.text.value == "" ) || ( document.emailForm.email.value.search("@") == -1 ) || ( document.emailForm.email.value.search("[.*]" ) == -1 ) ) {
			alert( "<?php echo $VM_LANG->_('CONTACT_FORM_NC',false); ?>" );
		} else if ( ( document.emailForm.email.value.search(";") != -1 ) || ( document.emailForm.email.value.search(",") != -1 ) || ( document.emailForm.email.value.search(" ") != -1 ) ) {
			alert( "You cannot enter more than one email address" );}
		 else {
		   	
			document.emailForm.submit();
		}
	}
	
	</script>
Если что, форма отправки вопроса по товару в виртумарт находится в файле ../public_html/components/com_virtuemart/themes/default/templates/pages/shop.ask.tpl.php
selfshelly вне форума Ответить с цитированием
Старый 26.10.2018, 08:08   #3
Ottava
Форумчанин
 
Регистрация: 05.09.2017
Сообщений: 157
По умолчанию

Да, после смены ЧПУ форму просто надо отправлять на другой адрес. А вот со скобками } надо бы аккуратнее - они могут поменять всю логику работы модуля.
Но у вас как было, так и осталось, просто скобка } при редактировании перескочила в конец предыдущей строки:
Код:
	<script type="text/javascript">
	function validateEnquiryForm() {
		if ( ...) {
			operator;
		} else if ( ... ) {
			operator;}
		 else {
			document.emailForm.submit();
		}
	}
	
	</script>
Безопасность с Content Security Policy
Ottava вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если так заполнять массив, то второй цикл не выполняется, а если задавать элементы вручную - выполняется. Почему так? Hermeneticus Помощь студентам 1 30.10.2017 09:29
Стилизация кнопки Submit Gift020 HTML и CSS 0 20.03.2013 14:44
Submit Form JS 4ok JavaScript, Ajax 4 20.01.2013 20:14
Submit в TWebBrowser1 ==Spider== Работа с сетью в Delphi 5 24.08.2011 11:53
Написать Submit Krasi HTML и CSS 2 25.03.2010 10:52