未触发自定义jquery验证规则

时间:2011-08-06 10:44:35

标签: javascript jquery html dom jquery-validate

我创建了一个名为“uniqueUserName”的自定义验证规则。我用它来验证表单中的输入字段username_ID。问题是它没有被触发。我可以在Firebug中看到没有请求发送到服务器,这将在触发规则时发生。

我要验证的表单是动态加载到div中的。

我的脚本:

$(document).ready(function() {
         //First. load the form and add it to the div. 
         $.get("registeraccount.php", function(data){
             $("#adminarea").html(data);
                         //addValMeth();
                         attacheValidation("#registerform");

        });

     //function addValMeth(){
       //Add custom validator rule
       $.validator.addMethod("uniqueUserName", function(value, element) {

            $.get("databasescripts/validate_username.php", {username: value}, function(data2){

                   if(data2 == "1"){
                       return true ;                   

                   }else{
                       return false;
                   }
                });
       }, "Användarnamnet är inte unikt");
      //};

                $("#registerform").live("submit", function(e){
                        //Prevent the form from submitting normally
                        e.preventDefault();

                    $.post("registeraccount.php",$(this).serialize(),function(msg){
            });
    });

   function attacheValidation($form){ 
                    //Define validation rules
                    $($form).validate({ 
                            rules: { 
                              firstname: "required",// simple rule, converted to {required:true} 
                              surname: "required",
                              //phonenumber: "required",
                              address: "required",
                             // address2: "required",
                              zipcode: "required",
                              //username_ID: "return true;",
                              city: "required",

                              email: {// compound rule 
                                required: true, 
                                email: true 
                              }, 
                                  username_ID: {
                                  required: true,
                                  uniqueUserName: true
                              }
                            }, 
                            messages: { 
                              firstname: "Förnamn saknas" ,
                              surname: "Efternamn saknas",
                              address: "Adress saknas",
                              zipcode: "Postkod saknas",
                              city: "Ort saknas",
                              companyname: "Företagsnamn saknas",
                              email: "Korrekt emailadress saknas"                             
                            } 
                          }); 
                    };

  });

我的表格:

<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>

正如您所看到的,我已经尝试在加载表单时加载新的验证方法,调用一个函数(addValMeth)。没有不同。我没有任何不同的行为评论该功能。

自定义规则未被触发的原因是什么?如何解决?所有其他规则都正常运作。

1 个答案:

答案 0 :(得分:0)

问题是我引用了输入字段的id。显然是不好的选择,它应该是应该使用的“名称”属性。