我尝试使用 jQuery Globalization 插件来解决 jquery 无障碍客户端验证的逗号问题。但是我尝试了很多解决方案,但没有很好的解决方案来解决这个问题。我使用的是非英语本地化计算机,重要的是我的客户输入十进制值,如“123,66”而不是“123.66”。ASP.NET验证告诉我价格一定是数字!嗯?你是认真的吗 ?哈哈
当我尝试进行修复时,我收到了这个 javascript 错误。
$.global is undefined
这是我的代码。
布局.cshtml
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.7.1.js")" type="text/javascript"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"> </script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")"type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/globalize.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/cultures/globalize.cultures.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.form.js")"type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/glob.fix.js")" type="text/javascript"></script>
</head>
<body>
@RenderBody()
</body>
</html>
glob.fix.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);
}
我不明白..自从我添加了它应该可以工作~/Scripts/globalize.js
。
任何的想法?或者您可能有更好的解决方案来进行客户端验证工作并让我输入逗号作为十进制值?