jquery の邪魔にならないクライアント検証でコンマの問題を修正するために、jQuery グローバリゼーション プラグインを使用しようとしています。しかし、私は多くの解決策を試しましたが、これを修正するための良い解決策はありません. 私は英語以外のローカリゼーション コンピューターを使用しており、顧客が「123.66」ではなく「123,66」のような 10 進数値を入力することが重要です。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
。
何か案が?または、クライアントの検証を機能させるためのより良い解決策があり、カンマを10進数として入力できるようにすることはできますか?