Ответ 1
Я нашел способ окончательно избавиться от десятичной задачи с помощью разделителя запятой!
Вот картина результата! Больше проблем с проверкой.
Шаги к исправлению.
1- Получить Библиотека глобализации для jQuery
Вы должны получить последнюю версию script! Кроме того, я нашел несколько ответов, которые устарели.
Объект для вызова библиотеки не более $.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
= > Это фактически заменит все, что содержит ',' to '.' если вы выбрали нужную ему культуру.
После этого.. Вы должны добавить. Это заставит функции глобализации работать с культурой.
$(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>