【发布时间】:2012-02-09 03:05:20
【问题描述】:
我尝试使用 jQuery Globalization 插件来解决 jQuery 无障碍客户端验证的逗号问题。但是我尝试了很多解决方案,但没有很好的解决方案来解决这个问题。我在一台非英语本地化计算机上,重要的是我的客户输入像“123,66”而不是“123.66”这样的十进制值。 ASP.NET验证告诉我价格一定是数字!嗯?你是认真的吗 ?哈哈
我在尝试进行修复时收到此 javascript 错误。
$.global is undefined
这是我的代码。
Layout.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,它应该可以工作。
有什么想法吗?或者您可能有更好的解决方案来进行客户端验证工作并让我输入逗号作为十进制值?
【问题讨论】:
-
感谢您提供范围验证器代码!