我在asp.net mvc 3 app上使用jquery.validate时出现问题。
至少在西班牙,我们使用“,”从小数中分割出一个数字。好吧,使用服务器端验证,如果我提出类似的东西:
12.55当服务器验证它时,它表示该值无效。如果我把:12,55就可以了。
到目前为止一切顺利,但如果我使用jQuery验证,则表示12,55无效,12.55是有效的。因此,客户端通过验证但服务器没有,或者客户端没有通过,但服务器会通过。
那么......我可以更改这种验证的语言环境吗?
谢谢。
PS :服务器如何知道我想使用“,”而非“。”进行验证?我不记得我是否在某处指定了。
答案 0 :(得分:1)
可能您应该包含本地化文件:
http://ajax.aspnetcdn.com/ajax/jQuery.Validate/1.7/localization/messages_es.js
http://ajax.aspnetcdn.com/ajax/jQuery.Validate/1.7/localization/methods_de.js
在德国,人们对数字使用相同的规则,因此您可以使用methods_de.js
或仅包含
jQuery.extend(jQuery.validator.methods, {
number: function(value, element) {
return this.optional(element) ||
/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
}
});
Here Microsoft CDN为1.6版本托管的文件列表。版本1.7有the same files。
更新:参见演示here。
答案 1 :(得分:0)
您可以尝试配置Web应用程序以使用客户端Web浏览器的区域设置:
<system.web>
<globalization requestEncoding="utf-8"
responseEncoding="utf-8"
culture="auto"
uiCulture="auto" />
...
</system.web>
这将使用浏览器文化进行服务器端验证。就客户端验证而言,它已经使用了浏览器文化。所以这确保两者都匹配。