gpt4 book ai didi

asp.net-mvc - 带有 jQ​​uery 验证的 ASP.NET MVC - 消息定制和本地化

转载 作者:行者123 更新时间:2023-12-02 07:37:00 25 4
gpt4 key购买 nike

我有框架支持本地化的 ASP.NET MVC (4) 项目。如果我将浏览器设置更改为另一种语言,框架会自动选择正确的资源文件。

但是,因为我使用的是 knockoutjs,所以我在这些 View 中回退到 jQuery 验证。不幸的是,那里没有对本地化的自动支持。

我的问题是 - 自定义和本地化 jQuery 验证消息的最佳实践和方法是什么,以便它们将与所有 MVC 资源一起被自动挑选?

在给定资源和消息 ID 的情况下,jQuery 验证消息的行为方式与数据注释消息类似。

特别是-

  1. 如何让 jQuery 从资源中获取消息 I want 而不是默认的“This field is required”,所以它会打印类似“Please enter email”和

  2. 如果我更改浏览器语言,如何让 jQuery 自动以另一种语言打印相同的自定义消息

提前谢谢你。

最佳答案

1) How to I make jQuery pick up the message I want from the resources instead of its default "This field is required", so it will print something like "Please enter email".

随时调用以下内容以覆盖消息。下面的字符串可以用变量替换。

jQuery.extend(jQuery.validator.messages, {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
maxlength: jQuery.validator.format("Please enter no more than {0} characters."),
minlength: jQuery.validator.format("Please enter at least {0} characters."),
rangelength: jQuery.validator.format("Please enter a value between {0} and {1} characters long."),
range: jQuery.validator.format("Please enter a value between {0} and {1}."),
max: jQuery.validator.format("Please enter a value less than or equal to {0}."),
min: jQuery.validator.format("Please enter a value greater than or equal to {0}.")
});

否则,您可以在 .validate() 中声明规则时获得更具体的信息。

$(document).ready(function () {

$('#myform').validate({ // initialize the plugin
rules: {
field1: {
required: true,
minlength: 5
}
},
messages: {
field1: {
required: "custom message for field 1 required",
minlength: "custom message: {0} chars required"
}
}
});

});

演示:http://jsfiddle.net/XV3ZR/

动态更改插件首次初始化后的任何消息,需要使用the rules('add') method 进行覆盖。 .

$('#field1').rules('add', {
messages: {
required: "field 1 required",
minlength: "{0} chars required"
}
});

演示 2:http://jsfiddle.net/PJGgE/1/

2) How can I make jQuery print the same customized message in another language automatically should I change browser language ?

我不确定您所说的“更改浏览器语言”是什么意思,但同样,上面#1 中的方法是唯一的方法,AFAIK。这些只是字符串,您必须手动或通过外部方法翻译它们。

关于asp.net-mvc - 带有 jQ​​uery 验证的 ASP.NET MVC - 消息定制和本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15326036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com