【问题标题】:Unable to specify custom error in jQuery validation engine无法在 jQuery 验证引擎中指定自定义错误
【发布时间】:2013-01-28 22:13:19
【问题描述】:

我正在摆弄记录在案的 jQuery 验证引擎 here

我已经在本地下载了所有的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({ 规则:{ 名字:“必填”, 姓氏:“必填”, 电子邮件: { 要求:真, 电子邮件:真实 }, 密码: { 要求:真, 最小长度:5 }, 同意:“需要” }, 消息:{ firstname: "请输入您的名字", lastname: "请输入您的姓氏", 密码: { required: "请提供密码", minlength: "您的密码长度必须至少为 5 个字符" }, email: "请输入有效的电子邮件地址", 同意:“请接受我们的政策” }, 提交处理程序:函数(表单){ form.submit(); } });

jQuery Validation 引擎可以做到这一点吗?

【问题讨论】:

    标签: jquery jquery-validation-engine


    【解决方案1】:

    是的,有可能: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(...
    

    从 jQuery 1.9 开始,live 已被移除

    编辑:

    你犯了一个小错误:

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

    # 应该在那里:

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

    【讨论】:

    • 还有几点: * 我不想使用 html5 属性 * 我不想要 html 中的任何验证内容,只需要 id 和名称 * 我想用 JS 对象文字来做,所以如果我了解我的 JS 出了什么问题我已经稍微编辑了问题 1 的描述,请阅读。
    • 其实 js 使用属性来生成消息。所以你想要做的就是在脚本中有它。让我为你检查一下代码,看起来没问题。
    • 只需删除 id 字段中的#。
    • 但是line28 : .live(...是哪个JS文件呢?
    • 已更正。 JqueryvalidationEngine.js
    猜你喜欢
    • 1970-01-01
    • 2013-03-02
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    相关资源
    最近更新 更多