2010-11-08 85 views
0

我想创建一个对话框弹出框中的2个窗体。弹出窗口很好用,但在对话框中有两个窗体,每个窗体都有不同的动作。基本的jQuery弹出多个表单

我使用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

我在这里猜测了一下,但它可能是表单验证程序中的一个错误。

验证插件可能会使用您的原始CSS选择器(.formFill2)以获取submitHandler函数的参数。如果他们使用类似get(0)的东西,那么它将始终返回由.formFill2发现的第一个DOM对象 - 第一种形式。

如果您将console.log传递到submitHandler的“表单”参数,您是否得到正确的表单?

如果它总是给你的第一种形式,你可能想尝试像下面这样:

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

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