Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.05.2014, 08:28
Интересующийся
Отправить личное сообщение для pawel1812 Посмотреть профиль Найти все сообщения от pawel1812
 
Регистрация: 05.05.2014
Сообщений: 14

Много (6шт) форм на одной странице. Как?
Проблема тривиальная, как я посмотрел на форуме, но решения так и не нашел, подскажите что где нужно дописать или переделать. Заранее благодарен!
есть рабочая форма
<form onsubmit="return checkForm(this)" action="forms/form1.php" method="post" class="form1" >
<p><span>Отправьте заявку</span> сейчас и получите доставку Бесплатно</p>

            <input type="text" value="" name="fio1" id="fio1" class="input-chel"  >
		    <div id='err_fio1' class='error1'></div>
            <input type="text" value="" name="phone1" id="phone1" class="input-coll" >
            <div id='err_phone1' class='error1'></div>
            <input id="submit-form1" type="submit" class="input-submit" value="" >
</form>




и такой же рабочий скрипт, но только если делать в одном экземпляре

<script type="text/javascript">
function checkForm(form){
	if (document.getElementById('fio1').value==""){
	document.getElementById('err_fio1').innerHTML='Введите ваше имя';
		return false;
	}
	else {
	document.getElementById('err_fio1').innerHTML="";
	};
	if (document.getElementById('phone1').value==""){
	document.getElementById('err_phone1').innerHTML='Введите номер телефона';
		return false;
	}
	else {
	document.getElementById('err_phone1').innerHTML="";
	};

	return true;

};

</script>
Ответить с цитированием
  #2 (permalink)  
Старый 05.05.2014, 08:35
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Ибо один и тот же идентификатор может быть только у одного элемента на странице.
Ответить с цитированием
  #3 (permalink)  
Старый 05.05.2014, 08:42
Интересующийся
Отправить личное сообщение для pawel1812 Посмотреть профиль Найти все сообщения от pawel1812
 
Регистрация: 05.05.2014
Сообщений: 14

if (document.getElementById('fio1').value==""){
04	    document.getElementById('err_fio1').innerHTML='Введите ваше имя';
05	        return false;


спасибо конечно за помощь , тока мне решение надо, я ничо в js не понимаю
где че изменить то, getElementById на getElementByclass, ???
Ответить с цитированием
  #4 (permalink)  
Старый 05.05.2014, 09:00
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

А не лучше ли найти какого-нибудь программиста, чем пытаться выполнить не свою работу?)
В HTML заменить все id на новые. Вот так:
<form onsubmit="return checkForm(this)" action="forms/form1.php" method="post" class="form1" >
<p><span>Отправьте заявку</span> сейчас и получите доставку Бесплатно</p>
 
            <input type="text" value="" name="fio1" id="fio2" class="input-chel"  >
            <div id='err_fio2' class='error1'></div>
            <input type="text" value="" name="phone1" id="phone2" class="input-coll" >
            <div id='err_phone2' class='error1'></div>
            <input id="submit-form1" type="submit" class="input-submit" value="" >
</form>

И то же самое в JS:
<script type="text/javascript">
function checkForm(form){
    if (document.getElementById('fio2').value==""){
    document.getElementById('err_fio2').innerHTML='Введите ваше имя';
        return false;
    }
    else {
    document.getElementById('err_fio2').innerHTML="";
    };
    if (document.getElementById('phone2').value==""){
    document.getElementById('err_phone2').innerHTML='Введите номер телефона';
        return false;
    }
    else {
    document.getElementById('err_phone2').innerHTML="";
    };
 
    return true;
 
};
 
</script>


Так пять раз.
Ответить с цитированием
  #5 (permalink)  
Старый 05.05.2014, 09:40
Интересующийся
Отправить личное сообщение для pawel1812 Посмотреть профиль Найти все сообщения от pawel1812
 
Регистрация: 05.05.2014
Сообщений: 14

да я блин так и пробовал делать fio1, 2, 3, и тд, но работает только одна форма, которая первая, то есть заполняю форму фио 4, а срабатывает форма 1,
Ответить с цитированием
  #6 (permalink)  
Старый 05.05.2014, 09:43
Интересующийся
Отправить личное сообщение для pawel1812 Посмотреть профиль Найти все сообщения от pawel1812
 
Регистрация: 05.05.2014
Сообщений: 14

это ж, если я правильно понимаю под каждой формой свой обработчик, со своими идентификаторами, но чет никак, мистика, или я чет не так делаю, как обычно)))
Ответить с цитированием
  #7 (permalink)  
Старый 05.05.2014, 09:44
Интересующийся
Отправить личное сообщение для pawel1812 Посмотреть профиль Найти все сообщения от pawel1812
 
Регистрация: 05.05.2014
Сообщений: 14

то есть не обработчик а скрипт проверки полей
Ответить с цитированием
  #8 (permalink)  
Старый 05.05.2014, 09:58
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

А, тьфу, невнимательно прочитал. Нельзя этот код повторять - получается, что функция просто каждый раз заново переопределяется.
Сделай так:
<script type="text/javascript">
        function checkForm(form){
          var result = true;
          if (form.fio1.value==""){
            form.getElementsByClassName("error1")[0].innerHTML='Введите ваше имя';
            result = false;
          }
          else {
            form.getElementsByClassName("error1")[0].innerHTML='';
          };
          if (form.phone1.value==""){
            form.getElementsByClassName("error2")[0].innerHTML='Введите номер телефона';
            result = false;
          }
          else {
            form.getElementsByClassName("error2")[0].innerHTML='';
          };
          
          return result;
          
        };
        
      </script>
    
    <form onsubmit="return checkForm(this)" action="forms/form1.php" method="post" class="form1" >
<p><span>Отправьте заявку</span> сейчас и получите доставку Бесплатно</p>
 
            <input type="text" value="" name="fio1" class="input-chel"  >
            <div class='error1'></div>
            <input type="text" value="" name="phone1" class="input-coll" >
            <div class='error2'></div>
            <input type="submit" class="input-submit" value="" >
</form>


При этом скрипт оставляешь на странице один, а формы копируешь сколько влезет.

Последний раз редактировалось Erolast, 05.05.2014 в 10:08.
Ответить с цитированием
  #9 (permalink)  
Старый 05.05.2014, 11:29
Интересующийся
Отправить личное сообщение для pawel1812 Посмотреть профиль Найти все сообщения от pawel1812
 
Регистрация: 05.05.2014
Сообщений: 14

да, спасибо огромное, так работает,

а такой вопрос, а форме можно как нибудь придать индивидуальности, ну то есть чтобы понимать с какой именно формы была отправка, может что то в самом обработчике нужно добавить
Ответить с цитированием
  #10 (permalink)  
Старый 05.05.2014, 12:42
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Конечно. Приписываешь в форму input типа hidden и пихаешь туда идентификатор.
<form onsubmit="return checkForm(this)" action="forms/form1.php" method="post" class="form1" >
<p><span>Отправьте заявку</span> сейчас и получите доставку Бесплатно</p>
<input type="text" value="" name="fio1" class="input-chel"  >
<div class='error1'></div>
<input type="text" value="" name="phone1" class="input-coll" >
<div class='error2'></div>
<input type="hidden" name="identifier" value="form_1" />
<input type="submit" class="input-submit" value="" >
</form>

Дальше, на стороне сервера, в скрипте form1.php, можешь получить значение этого поля точно так же, как и всех остальных.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как грамотно использовать много каруселек на странице Socgamer Общие вопросы Javascript 1 09.04.2013 12:50
Как передать ссылку первой картинки на странице maximus Events/DOM/Window 4 30.01.2013 19:32
Как перейти от одной формы к другой не используя header? Белая_Кошка Серверные языки и технологии 4 01.04.2010 02:47
Два одинаковых сценария на одной странице Genetics Общие вопросы Javascript 7 12.07.2009 01:46
Вставка текста с одной страницы в форму на другой странице Dima Общие вопросы Javascript 19 22.01.2009 17:35