2010-11-08 5 views
0

Я пытаюсь создать диалоговое окно с двумя формами внутри него. Всплывающее окно отлично работает, но внутри диалога у меня есть две формы, каждая из которых имеет отдельные действия.Базовый jQuery pop с несколькими формами

Я использую JQuery плагин формы, чтобы представить свою форму и показать ответ на #showResponse

Проблема у меня в том, когда я нажимаю любой из форм, которые она загружает первую форму в #showResponse и я точно не знаю, почему ....

Это мой Javascript код

$(".formFill2").validate({ 
    submitHandler: function (form) { 
     $(form).ajaxSubmit({ 
      target: "#submitResponse", 
      success: function (responseText, statusText, xhr, form) { 
       $("#submitResponse").show('slow'); 
       $('#submitResponse').delay(4000).fadeOut('slow'); 

      }, 
      error: function (responseText, statusText, xhr, form) { 
       alert("Oops... Looks like there has been a problem."); 
      } 
     }); 
     return false; 
    } 
}); 

и это мой HTML внутри моего диалогового окна.

<fieldset><legend>Email this PDF to</legend> 
        <form class="formFill2" name="emailPDF" id="emailPDF" action="classes/class.Post.php?a=notifyForm" method="post"> 
        <label for="email1">Email 1</label> 
        <input name="email1" type="text" value="<?php echo $_SESSION['myEmail']; ?>"><br /> 

        <input type="submit" value="Send Emails"> 
        </form>  
        </fieldset> 

        <fieldset><legend>Fax this PDF to</legend> 
        <form class="formFill2" name="faxPDF" id="faxPDF" action="classes/class.Post.php?a=faxFile" method="post"> 
        <label for="faxNumber">Fax #</label> 
        <input name="faxNumber" type="text" ><br /> 

        <input type="submit" value="Send Fax"> 
        </form>  
        </fieldset> 

Любая помощь была бы признательна.

ответ

1

Я немного размышляю здесь, но это может быть ошибка в валидаторе формы.

Возможно, что плагин Validate использует ваш оригинальный CSS-селектор (.formFill2), чтобы получить параметр для функции submitHandler. Если они используют что-то вроде get(0), тогда он всегда будет возвращать первый объект DOM, открытый .formFill2 - первой формой.

Если вы не указали параметр 'form', который указан в вашем submitHandler, вы получаете форму?

Если он всегда дает вам первую форму, вы можете попробовать что-то вроде следующего:

var submitHandler = function(form) { 
    //Your submitHandler... 
} 

$('#emailPDF').validate(submitHandler : submitHandler); 
$('#faxPDF').validate(submitHandler : submitHandler);