gpt4 book ai didi

jquery-globalization - 无法使jQuery全局化工作

转载 作者:行者123 更新时间:2023-12-03 13:30:03 28 4
gpt4 key购买 nike

我尝试使用jQuery全球化插件来解决jquery无障碍客户端验证的逗号问题。但是,我尝试了许多解决方案,但是没有好的解决方案。我使用的是非英语的本地化计算机,这对我的客户输入“ 123,66”而不是“ 123.66”这样的十进制值非常重要。 ASP.NET验证告诉我价格必须为数字! h?你是认真的吗 ?大声笑

尝试进行修复时,出现此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后,它应该可以工作。

任何想法?或者您可能有一个更好的解决方案来进行客户端验证,并让我输入逗号作为十进制值?

最佳答案

我找到了用逗号分隔符最终摆脱小数问题的方法!

这里是结果的图片!没有更多的验证问题。



修复步骤。

1-获取Globalization library for jQuery

您必须获取最新的脚本!我也找到了一些过时的答案。调用库的对象不再是$.global或类似的东西,而是Globalize

2-在您的项目中包含脚本。您必须在jquery.validation之后添加它们。

<script src="@Url.Content("~/Scripts/globalize.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/cultures/globalize.cultures.js")" type="text/javascript"></script>


3-替换验证器的某些方法。这将覆盖导致问题的“数字”和“范围”验证方法。

$.validator.methods.number = function (value, element) {
return this.optional(element) || !isNaN(Globalize.parseFloat(value));
}

$.validator.methods.range = function (value, element, param) {
return this.optional(element) || (Globalize.parseFloat(value) >= param[0] && Globalize.parseFloat(value) <= param[1]);
}


Globalize.parseFloat =>这实际上会将包含','的任何内容替换为'。'。如果您选择了需要的文化。

在此之后..您必须添加。这将使全球化功能与文化一起工作。

$(document).ready(function () {
Globalize.culture('fr-CA');

// Only there to show which culture are being used.
console.log(Globalize.culture().name);
});


完整的代码如下所示:

<!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 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 type="text/javascript">

$.validator.methods.number = function (value, element) {
return this.optional(element) || !isNaN(Globalize.parseFloat(value));
}
$.validator.methods.range = function (value, element, param) {
return this.optional(element) || (Globalize.parseFloat(value) >= param[0] && Globalize.parseFloat(value) <= param[1]);
}

$(document).ready(function () {
Globalize.culture('fr-CA');

// Only there to show which culture are being used.
console.log(Globalize.culture().name);
});
</script>

</head>

<body>
@RenderBody()
</body>
</html>

关于jquery-globalization - 无法使jQuery全局化工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9204855/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com