Javascript 验证在第二次提交时首先触发

Javascript 验证在第二次提交时首先触发,javascript,jquery,html,dom,jquery-validate,Javascript,Jquery,Html,Dom,Jquery Validate,我正在尝试验证一个表单。表单将动态生成并添加到页面上的div中。提交表单时,我希望立即执行验证。现在发生的事情是,我第一次提交表单时未经验证就发布了。我第二次点击submit时,它是validate 这是我的剧本: $("#registerform").live("submit", function(e){ //Prevent the form from submitting normally e.p

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

这是我的剧本:

$("#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>

Ägare av konto
*弗尔南姆:
*Efternamn:
*电子邮件:
*Telefon:
Företags信息:
*地址:
地址:
*发帖人:
*Ort:

Konto信息
*Användarnamn:
Företags信息
*Företagsnam(som kunden kommer东南部):
组织推荐人:

为什么在第一次提交时它不会被触发?我如何在第一次点击提交时执行验证

我不确定,但我想你应该打电话

$("#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"                             
                            } 
                          }); 

在click函数之外(当然,在将表单添加到DOM之后放置),以便在提交表单之前将验证附加到表单。在您的情况下,第一次单击时似乎设置了验证,第二次单击时生效

在第一次提交事件时,您不是在验证表单,而是在表单上附加验证器插件。在第二次提交时,您正在验证它并再次附加验证

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

您是否使用了“pjax”,如果是,您必须将验证代码放在“pjax:end”块中


$(document).on('pjax:end',function(){
$(“#csv_表单”).validate();
});

如何确保在DOM之后和提交之前添加它?nicksoft plz帮助解决此问题
<script>
$(document).on('pjax:end', function () {
   $('#csv_form').validate();
});
</script>