небольшая подсказка нужна

D7
На сайте с 23.11.2005
Offline
114
611

На сайте стоит форма поиска от яндекса (примерно):

<div class="yandexform" onclick="return {type: 1, logo: '', arrow: false, webopt: false, websearch: false, bg: '#FFFFFF', fg: '#FFFFFF', fontsize: 11, suggest: true, site_suggest: true, encoding: '', language: 'ru'}"><form action="http://www.site.ru/search.html" method="get"><input type="hidden" name="searchid" value="..."/><input name="text"/><input type="submit" value="Найти"/></form></div><script type="text/javascript" src="..." charset="utf-8"></script>

На странице обратная связь стоит простая форма отправки сообщений с несколькими полями (все приводит не стану, но они обязательны для заполнения):

<form action="1.php" method="post" name="mailer">Контактное лицо:<br><input type="text" name="name" value=""><br>компания:<br><input type="text" name="firma" value="">...<br><input type=submit value=" отправить " onClick="return FormSubmit()"><input TYPE=reset VALUE=" очистить поля ">...</form>

тк поля обязательны для заполнения, то идет проверка по ява скрипту их заполненность:

<script LANGUAGE="JavaScript" TYPE="text/javascript">

<!--

function FormSubmit()

{

var form = document.forms[0];

var name = form.name.value;

var firma = form.firma.value;

...

if (name == "") {window.alert("Ваше имя не введено"); return false;}

if (firma == "") {window.alert("Укажите название компании"); return false;}

...

return true;

}

//-->

</script>

так вот совместно с формой поиска яндекса функция проверки заполнения полей не вызывается по нажатию на кнопку "отправить" формы отправки сообщений. если форму поиска убрать, то все работает отлично.

если кто то сталкивался с этим, подскажите как решить этот вопрос..!

gormarket
На сайте с 29.12.2010
Offline
47
#1

если форм на странице две и форма отправки сообщений вторая, измените одну строку функции, сделав ее такой

var form = document.forms[1];

чтобы обращение шло ко второй форме, а не к первой

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
N0
На сайте с 12.01.2007
Offline
37
#2

А вы уверены что функция не вызывается?

У вас в функции есть такой код var form = document.forms[0]; Если форма яндекса будет выше вашей формы, то в проверка заполненности полей будет проходить по форме яндекса, а не вашей.

Вашу форму можно получить так var form = document.forms[1];

D7
На сайте с 23.11.2005
Offline
114
#3

спасибо. все теперь понятно

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий