javascript - JQuery .validate 在第二次提交时首先触发

标签 javascript jquery html dom jquery-validate

我正在尝试验证表单。表单是动态生成的并添加到页面上的 div 中。提交表单时,我希望立即执行验证。现在发生的情况是,我第一次提交表单时未经验证就发布了。我第二次点击“提交”时,它就通过了。

这是我的脚本:

$("#registerform").live("submit", function(e){
                        //Prevent the form from submitting normally
                        e.preventDefault();
                       $("#registerform").validate({ 
                            rules: { 
                              firstname: "required",// simple rule, converted to {required:true} 
                              surname: "required",
                              //phonenumber: "required",
                              address: "required",
                             // address2: "required",
                              zipcode: "required",
                              username_ID: "required",
                              city: "required",
                              companyname: "required",
                              email: {// compound rule 
                              required: true, 
                              email: true 
                            }              
                            }, 
                            messages: { 
                              firstname: "Förnamn saknas" ,
                              surname: "Efternamn saknas",
                              address: "Adress saknas",
                             // address2: "required",
                              zipcode: "Postkod saknas",
                              username_ID: "Användarnamn saknas",
                              city: "Ort saknas",
                              companyname: "Företagsnamn saknas",
                              email: "Korrekt emailadress saknas"                             
                            } 
                          }); 
                        //alert("e");
                    $.post("registeraccount.php",$(this).serialize(),function(msg){
                    //alert the response from the server
                    //alert(msg);
            });
    });

我的表格:

<form id='registerform' action='registeraccount.php' method='post'> 
            Ägare av konto</br>
            * Förnamn: <input type='text' name='firstname' /> <br/>
            * Efternamn: <input type='text' name='surname' /> <br/>
            * Email: <input type='text' name='email' /> <br/>
            * Telefon: <input type='text' name='phonenumber' /> <br/>
            Företagsinformation: </br>
            * Adress: <input type='text' name='address' /> <br/>
            Adress: <input type='text' name='address2' /> <br/>
            * Postnummer: <input type='text' name='zipcode' /> <br/>
            * Ort: <input type='text' name='city' /> <br/>

            <br/>
            Kontoinformation</br> 
            <div id='username_message'></div>
            * Användarnamn: <input id='username_ID' type='text' name='username' />

            <br/>
            Företagsinformation<br/>
            * Företagsnamn (som kunden kommer se det): <input type='text' name='companyname' /> <br/>
            Organisationsnummer: <input type='text' name='organisationnumber' /><br/>
            <input id='submitaccountregistration' type='submit' value='Submit Comment' /> 
        </form>

为什么第一次提交时没有触发它,如何在第一次点击提交时执行验证?

最佳答案

第一次提交事件时,您不会验证表单,而只是将验证器插件附加到其中。在第二次提交时,您将验证它并再次附加验证。

只需定义添加验证的函数 (function AttachValidate(form) { $(form).validate... }) 并在生成/加载表单时运行此函数。

关于javascript - JQuery .validate 在第二次提交时首先触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6965896/

相关文章:

javascript - 如何将函数变量的值分配为 Javascript 函数中的变量名

javascript - 添加 else if 语句以使用 javascript 在 html 中拉出页面

javascript - google.load 在 jquery 的 $(window).load(function(){}) 中运行时不起作用;?

javascript - 无法通过 "querySelector"找到元素

javascript - 弹窗不触发 chrome.tabs.create 的回调?

javascript - 卡住和调暗页面内容,然后覆盖新内容并使其可滚动?

javascript - 通过ajax下载文件

javascript - 想要在 jQuery Mobile 首次加载时显示对话框消息

html - 如果我使用背景图片会有性能问题吗

javascript - 使用 JavaScript Cookie 的建议