2013-02-13 63 views
3

我與jQuery驗證引擎擺弄記錄here無法指定jQuery驗證引擎的自定義錯誤

我已經下載到本地的所有JS文件。並創建了一個簡單的表單,只需要一個單獨的文本框。

問題1

我不能指定自定義錯誤此要求的規則(即使我已經指定自定義錯誤信息選項)。而是顯示默認消息「此字段是必需的」。我已經在git上用示例(顯示爲here)編寫了這段代碼,但它不起作用。請指出它出錯的地方。 (我想用JS對象文本做它,而不是使用相當於HTML5屬性。)

我的代碼:

<html> 
<head>  
    <script type="text/javascript" src="scripts/jquery-1.9.0.min.js"></script>  
    <script type="text/javascript" src="scripts/jquery.validationEngine-en.js"></script>   
    <script type="text/javascript" src="scripts/jquery.validationEngine.js"> </script>  
    <link type="text/css" rel="stylesheet" href="styles/validationEngine.jquery.css" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Insert title here</title> 
    <script type="text/javascript"> 
      $(document).ready(function(){ 
       $("#form1").validationEngine({'custom_error_messages' : {         
          '#username':{ 
           'required':{ 
            'message':"Hey you cannot leave this field blank." 
           } 
          }  
         } 
        });       
       }); 

    </script> 
</head> 
<body> 
    <form id="form1"> 
     <br /><br /> 
     <h2>Form 1</h2> 
     Username: <input id="#username" type="text" class="validate[required]" ></input> <br />  
    </form> 
</body> 
</html> 

問題2

我怎麼可以指定哪些規則應用到哪些JS中的元素,而不是在html中指定類的值。我寧願有乾淨的不顯眼的html,而不是在html中混合驗證特定的東西。這是可能的jQuery Validation plugin如下:

 
      $("#register-form").validate({ 
       rules: { 
        firstname: "required", 
        lastname: "required", 
        email: { 
         required: true, 
         email: true 
        }, 
        password: { 
         required: true, 
         minlength: 5 
        }, 
        agree: "required" 
       }, 
       messages: { 
        firstname: "Please enter your firstname", 
        lastname: "Please enter your lastname", 
        password: { 
         required: "Please provide a password", 
         minlength: "Your password must be at least 5 characters long" 
        }, 
        email: "Please enter a valid email address", 
        agree: "Please accept our policy" 
       }, 
       submitHandler: function(form) { 
        form.submit(); 
       } 
      }); 

這可能與jQuery驗證引擎。

回答

5

是有可能:link

爲例:

<input type="email" name="email" id="email" data-validation-engine="validate[required,custom[email]]" 
    data-errormessage-value-missing="Email is required!" 
    data-errormessage-custom-error="Let me give you a hint: [email protected]" 
    data-errormessage="This is the fall-back error message."/> 

也請注意,由於JQuery的1.9,在過去的版本工作的許多功能現在被刪除或棄用,並於樹天前增加了一個修正,所以你可能需要下載最新版本:jQuery.validationEngine v2.6.1

編輯 不知道,如果他們改正它ÿ等,但在.js文件由

line 28 : .on(... 

現場更換

line28 : .live(... 

因爲jQuery的1已經被刪除。9

編輯:

你做了一個小錯誤:

<input id="**#**username" type="text" class="validate[required]" ></input> <br /> 

應該有:

<input id="username" type="text" class="validate[required]" ></input> <br/> 
+0

幾個要點: *我不想使用HTML5屬性 *我不想在HTML中的任何驗證的東西,只是ID和名稱 *我想用JS對象文字來做,所以我會喜歡,如果我明白我的JS出了什麼問題,我已經編輯了一下問題描述,請閱讀。 – Mahesha999 2013-02-15 04:14:02

+0

實際上,js使用屬性來生成消息。所以你想要做的就是在腳本中。讓我檢查你的代碼看起來好吧。 – bleuscyther 2013-02-15 14:10:57

+0

只需刪除ID字段中的#。 – bleuscyther 2013-02-15 14:42:50