代码之家  ›  专栏  ›  技术社区  ›  Justin

具有多个表单的基本jQuery pop

  •  0
  • Justin  · 技术社区  · 14 年前

    我正在使用jQuery表单插件提交表单并显示对show response的响应

    我遇到的问题是每当我点击其中一个表单时,它就会加载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 回复  |  直到 11 年前
        1
  •  1
  •   Brad Swerdfeger    14 年前

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

    可能是验证插件正在使用原始CSS选择器( .formFill2 )以获取submitHandler函数的参数。如果他们用的是 get(0) ,则它将始终返回由 --第一种形式。

    如果你 console.log 传递到 submitHandler

    如果它总是给您第一个表单,您可能需要尝试以下操作:

    var submitHandler = function(form) {
        //Your submitHandler...
    }
    
    $('#emailPDF').validate(submitHandler : submitHandler);
    $('#faxPDF').validate(submitHandler : submitHandler);
    
    推荐文章