Miałem ten sam problem, ponieważ jestem Włochem, a tutaj liczby dziesiętne są sformatowane za pomocą przecinka zamiast kropki. Tak więc, co w USA wynosi 1,000.12, tutaj jest napisane 1.000,12. Tak właśnie rozwiązałem, po pewnym wyszukiwaniu: MVC3 zawiera już skrypt jquery.validate.js/jquery.validate.min.js i to jest niesamowite.
Następnie dodałem kolejny skrypt - methods-it.js - pobrany z folderu sprawdzania poprawności wtyczki jquery i nieco zmieniony.
jQuery.extend(jQuery.validator.methods, {
date: function (value, element) {
return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value);
},
number: function (value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
},
range: function (value, element, param) {
var val = value.replace(",", "#").replace(".", ",").replace("#", ".");
return this.optional(element) || (val >= param[0] && val <= param[1]);
}
});
Ten mały kod dotyczy dat (formatowanie włoskie), liczb zmiennoprzecinkowych i zakresu wartości. Działa świetnie, teraz! Niestety jest to tylko kierunek, a nie rozwiązanie, ponieważ musi być poprawione dla każdego locale.
możliwe duplikat [ASP.NET MVC walidacji musi być błąd niestandardowy numer] (http://stackoverflow.com/questions/ 4521254/asp-net-mvc-validation-musi-być-numerem-niestandardowy-błąd) –