加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – mvc3 jquery unobtrusive验证语言环境十进制字

发布时间:2020-12-16 03:54:59 所属栏目:asp.Net 来源:网络整理
导读:我正在使用不显眼的验证来处理本地化的mvc3 Web应用程序. 在web.config中我得到了: globalization culture="pl-PL" uiCulture="pl" / Jquery 1.4.4和jquery验证1.6正在使用中. 问题是十进制数字分隔符. 我可以看到jquery验证忽略了文化,并期望点字符始终是
我正在使用不显眼的验证来处理本地化的mvc3 Web应用程序.
在web.config中我得到了:

<globalization culture="pl-PL" uiCulture="pl" />

Jquery 1.4.4和jquery验证1.6正在使用中.

问题是十进制数字分隔符.

我可以看到jquery验证忽略了文化,并期望点字符始终是小数分隔符.我需要使用逗号代替.我认为例如德语也是如此.

我创建了自己的methods_pl.js文件:

jQuery.extend(jQuery.validator.methods,{
number: function(value,element) {
    return this.optional(element) || /^-?(?:d+|d{1,3}(?:.d{3})+)(?:,d+)?$/.test(value);
}
});

以上是解决十进制数根本无法识别的基本问题.

但是当我尝试在我的模型Decimal Price属性上使用RangeAttribute时,它仍然不起作用.
怎么解决这个?

解决方法

如果你设置

key="UnobtrusiveJavaScriptEnabled" value="false"

上一个答案中发布的DecimalModelBinder将起作用,但您正在禁用客户端验证.

要解决您的问题,您需要包含正确的jQuery语言环境.
看一下this post from Scott Hanselmann或this post,他们应该给你一些帮助来实现它.

你应该在你的DOMready函数中添加Jquery.globalize插件形式NuGet然后添加类似的东西以正确验证数字(至少它适用于我)

$.validator.methods.number = function (value,element) {
        if (Globalize.parseFloat(value)) 
            return true;
        return false;
    }
 Globalize.culture('fr-FR');

然后在页面中添加相关脚本

<script src="@Url.Content("~/Scripts/jquery-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.globalize/globalize.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.globalize/cultures/globalize.culture.fr-FR.js")" type="text/javascript"></script>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读