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

Mah*_*aha 3 jquery jquery-validation-engine

我正在摆弄这里记录的jQuery验证引擎

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

问题1

我无法为此必需规则指定自定义错误(即使我已指定custom-error-message选项).相反,它显示默认消息"此字段是必需的".我写了这个代码示例(所示的帮助下在这里)的git的,但它不工作.请指出哪里出错了.(我想用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>
Run Code Online (Sandbox Code Playgroud)

问题2

如何指定应用于JS中哪个元素的规则,而不是在html中指定类值.我宁愿使用干净的不显眼的HTML,而不是在HTML中混合验证特定的东西.这可以通过jQuery Validation插件实现,如下所示:

            $("#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引擎.

ble*_*her 5

是的,有可能:链接

例如:

<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."/>
Run Code Online (Sandbox Code Playgroud)

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

编辑 不知道他们是否已更正,但在.js文件中替换

line28 : .live(...
Run Code Online (Sandbox Code Playgroud)

通过

line 28 : .on(...
Run Code Online (Sandbox Code Playgroud)

live已从jQuery 1.9中删除

编辑:

你犯了一个小错误:

<input id="**#**username" type="text" class="validate[required]" ></input> <br />
Run Code Online (Sandbox Code Playgroud)

在#应该有:

<input id="username" type="text" class="validate[required]" ></input> <br/>  
Run Code Online (Sandbox Code Playgroud)