无法在jQuery验证引擎中指定自定义错误

时间:2013-02-13 11:19:05

标签: jquery jquery-validation-engine

我正在摆弄记录在here

的jQuery验证引擎

我已在本地下载了所有JS文件。并创建了一个包含单个必需文本框字段的简单表单。

问题1

我无法为此必需规则指定自定义错误(即使我已指定custom-error-message选项)。相反,它显示默认消息“此字段是必需的”。我已经在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 Validation引擎。

1 个答案:

答案 0 :(得分: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: someone@nowhere.com" 
    data-errormessage="This is the fall-back error message."/>

另请注意,由于JQuery 1.9现在删除或弃用了过去版本中的许多功能,并且在几天前添加了修复程序,因此您可能需要下载最新版本:jQuery.validationEngine v2.6.1

修改 不知道他们是否已经纠正但是在.js文件中替换

line28 : .live(...

通过

line 28 : .on(...

live已从jQuery 1.9中删除

修改

你犯了一个小错误:

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

应该在那里:

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