Недавно начал программировать с использованием asp.net mvc 3.
При вводе вещественных чисел jquery.validation использует следующее регулярное выражение:
// http://docs.jquery.com/Plugins/Validation/Methods/number
number: function(value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
}
То есть числа нужно вводить через точку, что соответствует английской локали.
Сервер работает в русской локали, которая принимает только запятые.
Поискав в интернете нашел такое видео
ASP.NET MVC: 12 — применение AJAX-валидации, но сделав все как там сказано, клиентская валидация у меня так и не принимает запятую.
Можно, конечно, решить проблему в лоб: вручную исправить скрипт, но хотелось найти более правильное решение.
Здравствуйте, Brainman, Вы писали:
B>То есть числа нужно вводить через точку, что соответствует английской локали.
B>Сервер работает в русской локали, которая принимает только запятые.
B>Поискав в интернете нашел такое видео ASP.NET MVC: 12 — применение AJAX-валидации, но сделав все как там сказано, клиентская валидация у меня так и не принимает запятую.
B>Можно, конечно, решить проблему в лоб: вручную исправить скрипт, но хотелось найти более правильное решение.
В JQuery отсутствует способ задать локаль или разделитель для вещественных чисел?
ИМХО, тут не надо прикручивать аякс запрос для операции, которая должна выполняться на клиенте. Если в квери действительно нет возможность явно или неявно задать свой разделитель, я бы не изменял скрипт, а добавил измененный метод валидации в один из скриптов проекта.
Не стоит менять сам JQuery, иначе получишь уже свою сборку этого фреймворка, а это значит надо переопределить название библиотеки, чтобы ее случайно не обновили, потеряв все твои изменения, надо следить за своей версионностью, помнить о сделанных изменениях. Хорошо бы актуализировать документацию по измененному фреймворку. Короче, Open/Closed Principle.