Tuve el mismo problema porque soy italiano y aquí los números decimales están formateados con coma en lugar de punto. Entonces, lo que en los Estados Unidos es 1,000.12 aquí está escrito en 1,000,12. Así es como lo resolví, después de algunas búsquedas: MVC3 ya incluye el guión jquery.validate.js/jquery.validate.min.js y eso es increíble.
Luego agregué otro script - methods-it.js - tomado de la carpeta de localización de jquery validate plugin y cambiado un poco.
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]);
}
});
Este pequeño código trata de fechas (formato italiano), números flotantes y rango de valores. ¡Funciona de maravilla, ahora! Desafortunadamente, esta es solo una dirección y no la solución, porque debe corregirse para cada localidad.
posible duplicado de [validación asp.net mvc debe ser un error de número personalizado] (http://stackoverflow.com/questions/ 4521254/asp-net-mvc-validation-must-be-a-number-custom-error) –