При использовании ASP.Net MVC 3, я натолкнулся на проблему с валидацией данных. Оказывается jQuery не любит дробный разделитель в виде запятой. Если вы отображаете textbox для поля типа decimal и разделитель дробной части — точка, то скрипт валидации на клиенте не даст отправить данные, т.к. для него разделитель только — запятая.
Для решения проблемы, вы можете изменить методы range() и number() в jquery.validate.js. Но лучше переопределить их в другом месте, т.к., например, при обновлении фреймворка jQuery, эти изменения потеряются. Я предлагаю создать отдельный файл, например validationFix.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);
}
Изменения выделены:
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:[\s\.,]\d{3})+)(?:[\.,]\d+)?$/.test(value);
оригинал [\.]