2013-02-13 84 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