2013-08-21 91 views
0

我正在使用JQuery驗證插件。JQuery驗證插件給出錯誤?

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.js"></script> 

jQuery代碼:

function validateForm(){ 


     $('[name^="attribute"]').each(function(){ 
     $(this).rules("add", { 
      required: true, 
      messages: { 
       required: "Mandatory field" 
      } 
     });    
    }); 



    $('[name^="valueAttribute"]').each(function(){ 
     $(this).rules("add", { 
      required: true, 
      maxlength: 12, 
      email: true, 
      messages: { 
       required: "Enter email", 
       email: "Enter valid email", 
       maxlength: "Maximum 12 characters" 
      } 
     });    
    }); 


     return $("#myForm").validate({ 
      onfocusout: function(element) { jQuery(element).valid(); } 
    }); 

    } 

但上面的腳本提供瞭如下錯誤。

TypeError: $.data(...) is undefined 

我在這裏做錯了什麼?它工作正常,如果我刪除所有爲每個和默認消息。

謝謝!

+1

你有一個的jsfiddle? –

回答

0

唯一的問題似乎是,你所添加的規則的元素validator插件的形式

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.js"></script> 
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.11.1/additional-methods.js"></script> 

然後

jQuery(function ($) { 
    function validateForm(){ 
     var validator = $("#myForm").validate({ 
      onfocusout: function(element) { jQuery(element).valid(); } 
     }); 

     $('[name^="attribute"]').each(function(){ 
      $(this).rules("add", { 
       required: true, 
       messages: { 
        required: "Mandatory field" 
       } 
      });    
     }); 

     $('[name^="valueAttribute"]').each(function(){ 
      $(this).rules("add", { 
       required: true, 
       maxlength: 12, 
       email: true, 
       messages: { 
        required: "Enter email", 
        email: "Enter valid email", 
        maxlength: "Maximum 12 characters" 
       } 
      });    
     }); 

     return validator; 

    } 

}); 

演示初始化之前:Fiddle

+0

我試了一下代碼。但它現在給出了不同的錯誤.TypeError:$ .validator.methods [method]未定義 – user1016403

+0

@ user1016403即使在包含additional-methods.js後,您仍然缺少'additional-methods.js'腳本 –

+0

。任何線索? – user1016403

0

你沒有使用$(document).ready();

試試這個

$(document).ready(function(){ 
    // do script here 
}); 

希望這將有助於

+0

它已經在文檔準備好功能.. – user1016403