【问题标题】:jQuery Validation plugin - Custom messagejQuery 验证插件 - 自定义消息
【发布时间】:2011-07-21 14:24:52
【问题描述】:

我是 JQuery 新手,正在使用 JQuery validation plugin。

我想问一下,如何覆盖默认消息以在与表单元素关联的标签中也显示文本。

我会收到类似这样的消息:

字段密码是必需的。而不是默认的此字段是必需的。

字段邮政编码必须至少包含 3 个字符。而不是默认值请输入至少 3 个字符。

我需要覆盖此插件的默认行为,因为我不想为每种验证类型的每个项目指定自定义消息。

有可能吗?

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:
    $("#signupform")
        .validate({
            rules: {
                password: "required",
                postcode: {
                    required: true,
                    minlength: 3
                }
            },
            messages: {
                password: "Field Password is required",
                postcode: {
                    required: "Field PostCode is required",
                    minlength: "Field PostCode must contain at least 3 characters" 
                }
        });
    

    【讨论】:

    • 感谢您的回答,但正如我所说:我需要覆盖此插件的默认行为,因为我不想为每种验证类型的每个项目指定自定义消息。你的回答正是我不想要的。
    • @Martin:抱歉,错过了这一点。好吧,我可以看到您覆盖默认消息的唯一方法是编辑插件,我不建议这样做。看看invalidHandler 是否适合你,否则这里的选项似乎有限。
    • 也可以通过这种方式为特殊输入设置特殊消息:data-msg-required="Please enter your email address" 或 data-msg-email="Please enter a valid email address" 在 html 标记中。
    【解决方案2】:

    这是我几天前在寻找同样的东西时发现的。不幸的是,我不记得在哪里找到了它,所以我不能把写答案的人归功于。

    jQuery.extend(jQuery.validator.messages, {
        required:"This field is required.",
        equalTo:"Password fields do not match.",
        email:"Please enter a valid email.",
    });
    

    【讨论】:

      【解决方案3】:

      有一种更简洁的方法可以实现这一点。

      使用“data-msg”或“data-msg-(rulename)”覆盖预定义规则或自定义规则的默认错误消息。 (经过jQuery验证v1.11.0,目前为v1.16.0)

      <input id="pwd" name="pwd" type="password" value=""
             required
             data-msg-required="Field Password is required." />
      
      <input id="postcode" name="postcode" type="text" value=""
             required
             data-msg-required="Field PostCode is required."
             minlength="3"
             data-msg-minlength="Field PostCode must contain at least 3 characters." />
      

      【讨论】:

      • 如果您只需要自定义一两条错误消息,最好的答案!
      • 谢谢!当我使用动态名称动态创建输入字段时,这对我很有帮助。
      【解决方案4】:

      我需要做同样的事情,并最终创建了一个自定义方法,以便可以在多个表单之间共享它的消息。

      我在类似的 Stack Overflow 问题中找到了这个答案:How can we specify rules for jquery validation plugin by class?

      $.validator.addMethod(
          "newEmail", //name of a virtual validator
          $.validator.methods.email, //use the actual email validator
          "Custom error message"
      );
      

      【讨论】:

        【解决方案5】:

        在插件之后添加:

        jQuery.extend(jQuery.validator.messages, {
            required: "Your new default message",
            email: "That's not a valid email"
        });
        

        如果需要,您可以将其放在单独的文件中,但请确保将其包含在插件本身之后

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-04
          • 2016-08-25
          • 1970-01-01
          • 1970-01-01
          • 2014-09-06
          • 1970-01-01
          相关资源
          最近更新 更多