我正在使用jquery进行客户端验证以及数据注释。一切正常,但我想在数字文本框中输入非数字值时本地化一条消息。但是对于客户端验证,asp.net mvc正在使用它自己的资源文件,其密钥为'ClientDataTypeModelValidatorProvider_FieldMustBeNumeric'。
我该怎么办?
感谢。
答案 0 :(得分:2)
在本页末尾寻找解决方案:
我在我的MVC 3 RTM项目中检查过它,效果很好。
答案 1 :(得分:2)
我有同样的问题,因为我是意大利语,这里十进制数字用逗号而不是点格式化。那么,在美国,1,000.12这里写的是1.000,12。 经过一番搜索,我就是这样解决的: MVC3已经包含脚本jquery.validate.js / jquery.validate.min.js 那太棒了。
然后我添加了另一个脚本 - methods-it.js - 取自jquery validate plugin localization folder并改变了一点。
jQuery.extend(jQuery.validator.methods, {
date: function (value, element) {
return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value);
},
number: function (value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
},
range: function (value, element, param) {
var val = value.replace(",", "#").replace(".", ",").replace("#", ".");
return this.optional(element) || (val >= param[0] && val <= param[1]);
}
});
这个小代码处理日期(意大利格式),浮动数字和值范围。 它现在很棒! 不幸的是,这只是一个方向,而不是解决方案,因为必须针对每个区域进行纠正。
答案 2 :(得分:0)
我发现在视图模型上使用DataAnnotations更容易:
[RegularExpression("([0-9]+)", ErrorMessageResourceType = typeof(ErrorMessage), ErrorMessageResourceName = "NumberInvalid")]