Javascript.RU

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

Две формы в fancybox
День добрый! Создал модальное окно плагином fancybox. Работает все хорошо

<div class="zakaz">
        <a class="zakaz2" href="#inline"></a>
    
    </div>
<div id="inline">
 <h2>Ваша заявка</h2>
 
 <form id="contact" name="contact" action="#" method="post">
  <label for="email">Ваш E-mail</label>
  <input type="email" id="email" name="email" class="txt">
<br>
  <label for="name">Ваше имя</label>
  <input type="text" id="name" name="name" class="txt">
<br>
  <label for="phone">Телефон</label>
  <input type="text" id="phone" name="phone" class="txt">
<br>
 
  <label style="width: 153px" for="msg">Наименование и количество оборудования</label>
  <textarea id="msg" name="msg" class="txtarea"></textarea>
  
  <button id="send">Отправить</button>
 </form>
</div>


function validateEmail(email) { 
  var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  return reg.test(email);
 }
 
jQuery(document).ready(function() {
  jQuery(".zakaz2").fancybox();
  jQuery("#contact").submit(function() { return false; });
 
  
  jQuery("#send").on("click", function(){
   var emailval  = jQuery("#email").val();
   var msgval    = jQuery("#msg").val();
   var msglen    = msgval.length;
   var mailvalid = validateEmail(emailval);
   
   if(mailvalid == false) {
    jQuery("#email").addClass("error");
   }
   else if(mailvalid == true){
    jQuery("#email").removeClass("error");
   }
   
   if(msglen < 4) {
    jQuery("#msg").addClass("error");
   }
   else if(msglen >= 4){
    jQuery("#msg").removeClass("error");
   }
   
   if(mailvalid == true && msglen >= 4) {
    // если обе проверки пройдены
    // сначала мы скрываем кнопку отправки
    jQuery("#send").replaceWith("<em>отправка...</em>");
    
    jQuery.ajax({
     type: 'POST',
     url: 'http://salepump.ru/sendmessage.php',
     data: jQuery("#contact").serialize(),
     success: function(data) {
      if(data == "true") {
       jQuery("#contact").fadeOut("fast", function(){
        jQuery(this).before("<p><strong>Ваша заявка успешно отправлена. В ближайшее время мы на неё ответим</strong></p>");
        setTimeout("$.fancybox.close()", 1000);
       });
      }
     }
    });
   }
  });
 });


Но при создании уже второй формы, окно появляется, но не отправляется запрос. Ну у первой, ни у второй формы. Делаю таким образом:

<a class="zvonok" href="#inlinee">Заказать обратный звонок</a>
 
<div id="inlinee">
 <h2>Обратный звонок</h2>
 
 <form id="contact" name="contact" action="#" method="post">
  <label for="name">Ваше имя</label>
  <input type="text" id="name" name="name" class="txt">
<br>
  <label for="phone">Телефон</label>
  <input type="text" id="phone" name="phone" class="txt">
<br>
 
  <label style="width: 153px" for="msg">Вопрос</label>
  <textarea id="msg" name="msg" class="txtarea"></textarea>
  
  <button id="send">Отправить</button>
 </form>
</div>

function validateEmail(email) { 
  var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  return reg.test(email);
 }
 
jQuery(document).ready(function() {
  jQuery(".zvonok").fancybox();
  jQuery("#contact").submit(function() { return false; });
 
  
  jQuery("#send").on("click", function(){
   var emailval  = jQuery("#email").val();
   var msgval    = jQuery("#msg").val();
   var msglen    = msgval.length;
   var mailvalid = validateEmail(emailval);
   
   if(mailvalid == false) {
    jQuery("#email").addClass("error");
   }
   else if(mailvalid == true){
    jQuery("#email").removeClass("error");
   }
   
   if(msglen < 4) {
    jQuery("#msg").addClass("error");
   }
   else if(msglen >= 4){
    jQuery("#msg").removeClass("error");
   }
   
   if(mailvalid == true && msglen >= 4) {
    // если обе проверки пройдены
    // сначала мы скрываем кнопку отправки
    jQuery("#send").replaceWith("<em>отправка...</em>");
    
    jQuery.ajax({
     type: 'POST',
     url: 'http://salepump.ru/callback.php',
     data: jQuery("#contact").serialize(),
     success: function(data) {
      if(data == "true") {
       jQuery("#contact").fadeOut("fast", function(){
        jQuery(this).before("<p><strong>Ваша заявка успешно отправлена. В ближайшее время мы на неё ответим</strong></p>");
        setTimeout("$.fancybox.close()", 1000);
       });
      }
     }
    });
   }
  });
 });
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Четыре одинаковые формы на странице с разной версткой varanika jQuery 2 19.10.2014 13:14
контент fancybox mazur417 jQuery 1 15.03.2014 12:19
Две разные веб формы одной кнопкой. nikeyb Events/DOM/Window 3 14.03.2014 09:34
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Отправка формы из Fancybox 2 Karandasheg Общие вопросы Javascript 0 16.05.2013 01:58