Jquery 不引人注目的自定义错误消息

发布于 2024-12-29 05:39:23 字数 948 浏览 0 评论 0原文

我创建了一个自定义 jquery 验证规则来检查十六进制颜色:

$.validator.addMethod("hexcolor", function (value, element) {
    return this.optional(element) || /^(#){1}([a-fA-F0-9]){6}$/.test(value);
}, "Please insert a valid hex color (#______)");

$.validator.unobtrusive.adapters.add("hexcolor", function (options) {
    options.rules['hexcolor'] = options.params;
    options.messages['hexcolor'] = options.message;
});

当我创建文本框时,我有这样的问题

@Html.TextBoxFor(p => p.Color, new { data_val = "true", data_val_hexcolor = "Error message" })

我有两个问题:

  1. 当值无效时,错误消息是“错误消息”而不是“请插入有效的十六进制颜色 (#_ _ _ _ _ _)”

  2. 我在其他一些示例中看到过这样创建的错误消息。

    jQuery.validator.addMethod("maxWords", function (value, element, params) { 返回 this.可选(元素) || stripHtml(value).match(/\b\w+\b/g).length <参数; }, jQuery.validator.format("请输入 {0} 个单词或更少。"));

字符串占位符“{0} {1}”等是否替换为参数值?

I created a custom jquery validation rule which checks for hex color:

$.validator.addMethod("hexcolor", function (value, element) {
    return this.optional(element) || /^(#){1}([a-fA-F0-9]){6}$/.test(value);
}, "Please insert a valid hex color (#______)");

$.validator.unobtrusive.adapters.add("hexcolor", function (options) {
    options.rules['hexcolor'] = options.params;
    options.messages['hexcolor'] = options.message;
});

When i create my textbox, i have something like this

@Html.TextBoxFor(p => p.Color, new { data_val = "true", data_val_hexcolor = "Error message" })

I have two problems/questions:

  1. When the value is invalid, the error message is "Error message" instead of "Please insert a valid hex color (#_ _ _ _ _ _)"

  2. I've seen in some other examples error messages created like this.

    jQuery.validator.addMethod("maxWords", function (value, element, params) {
    return this.optional(element) || stripHtml(value).match(/\b\w+\b/g).length < params;
    }, jQuery.validator.format("Please enter {0} words or less."));

String placeholder "{0} {1}" etc are replaced with the values of the parameters?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巾帼英雄 2025-01-05 05:39:23

你的问题对我来说不是很清楚。但是,如果您尝试编写接受参数的自定义错误消息。这是实现这一目标的方法:

 jQuery.validator.addMethod('validdate', function (value, element,
    params) {
             value = model.date();
             if (value === '') {
                 return false;
             }
             var range = JSON.parse(params);
             return value > range[0] && value < range[1];
         }, $.format('You can only specify date between {0} and  {1}'));

Your question is not very clear to me. However, if you are trying to write custom error messages that accept parameters. This is how to achieve that:

 jQuery.validator.addMethod('validdate', function (value, element,
    params) {
             value = model.date();
             if (value === '') {
                 return false;
             }
             var range = JSON.parse(params);
             return value > range[0] && value < range[1];
         }, $.format('You can only specify date between {0} and  {1}'));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文