0

我正在尝试创建一个对话框弹出框,其中包含 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>

任何帮助将不胜感激。

4

1 回答 1

1

我在这里推测了一下,但这可能是表单验证器中的一个错误。

可能是 Validate 插件使用您原来的 CSS 选择器 ( .formFill2) 来获取 submitHandler 函数的参数。如果他们使用类似的东西get(0),那么它总是会返回第一个发现的 DOM 对象.formFill2——第一个表单。

如果您console.log将 'form' 参数传递给您的submitHandler,您得到正确的形式吗?

如果它总是给你第一个表格,你可能想尝试以下方法:

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

$('#emailPDF').validate(submitHandler : submitHandler);
$('#faxPDF').validate(submitHandler : submitHandler);
于 2010-11-08T21:15:41.847 回答