繁体   English   中英

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

[英]Unable to specify custom error in 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>

问题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引擎。

是的,有可能: 链接

例如:

<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/>  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM