bza*_*fir 10 asp.net-mvc localization number-formatting asp.net-mvc-3
我的语言环境使用逗号,
,而不是.
小数点分隔符的点.
在MVC3中,当我打开一个显示小数值的编辑视图时
@Html.EditorFor(model => model.MyDecimalVal)
Run Code Online (Sandbox Code Playgroud)
值正确显示.
当我用逗号输入值时,我得到错误"值不是数字",如果我用点输入值,我没有错误,但实际上没有保存任何值.
如何处理这种情况?
Nat*_*lor 19
此博客文章建议覆盖默认的jQuery验证编号和范围规则,以便启用逗号小数分隔符的客户端支持.
为了解决这些问题,我们可以从jquery.validate.js文件中获取range()和number()函数的默认实现.然后我们创建另一个.js文件(比如说jQueryFixes.js),我们在其中覆盖这些默认函数,其中包含对逗号作为小数分隔符的支持.该文件的内容应该是这样的:
$.validator.methods.range = function (value, element, param) {
var globalizedValue = value.replace(",", ".");
return this.optional(element) || (globalizedValue >= param[0] && globalizedValue <= param[1]);
}
$.validator.methods.number = function (value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:[\s\.,]\d{3})+)(?:[\.,]\d+)?$/.test(value);
}
Run Code Online (Sandbox Code Playgroud)
通过调整验证逻辑来解决这个问题已经解释过,所以这里有一个不同的方法.
<system.web>
如果要将文化设置为,请将以下代码放在节点下的web.config文件中en
.它将处理小数分隔符:
<globalization culture="en-US" uiCulture="en" />
Run Code Online (Sandbox Code Playgroud)
我不确定,但是DateTime
,你仍然绑定到服务器的语言环境.
归档时间: |
|
查看次数: |
8171 次 |
最近记录: |