我正在尝试创建一个对话框弹出框,其中包含2个表单。弹出窗口效果很好,但在对话框中我有2个表单,每个表单都有不同的操作。
我正在使用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>
任何帮助都会令人感激。
答案 0 :(得分:1)
我在这里推测一下,但它可能是形式验证器中的错误。
可能是Validate插件使用原始CSS选择器(.formFill2
)以获取submitHandler函数的参数。如果他们使用类似get(0)
的内容,那么它将始终返回由.formFill2
发现的第一个DOM对象 - 第一个表单。
如果console.log
传递给submitHandler
的'form'参数,你会得到正确的表格吗?
如果它始终为您提供第一个表单,您可能需要尝试以下内容:
var submitHandler = function(form) {
//Your submitHandler...
}
$('#emailPDF').validate(submitHandler : submitHandler);
$('#faxPDF').validate(submitHandler : submitHandler);