Я использую jQuery ненавязчивую проверку версии 2.0 для MVC3. У меня также есть последний jquery.validate (v 1.9). У меня есть всплывающее окно формы с этим кодом:
$(document).ready(function() {
$('#createForm').submit(function() {
$.validator.unobtrusive.parse($('#createForm'));
(more)
(Третья строка необходима, так что поля формы, добавленные Javascript будет подтверждено.)
Проверка отлично работает за исключением того, что значения, такие как $ 1,000,00, введенный в тег ввода, связанный с десятичным свойством в модели просмотра, равен недействительным, а 1,000.00 is действителен. Очевидно, что «$» отличает значение как строку в глазах валидатора.
Я исследовал это в течение многих часов, и я нашел только один подобный вопрос (также на SO, и он остался без ответа). Я не могу поверить, что это было связано с каждым разработчиком MVC3, который обрабатывает валютные ценности в модальном диалоге, иначе мы, несомненно, будем иметь некоторое разрешение к настоящему времени, правильно?
Я решил проблему на сервере , создав DecimalBinder. Теперь мне нужно решение для проверки на стороне клиента. Я много искал API для jquery.validate.unobtrusive, но я не могу найти крючок. Я не хочу изменять стандартную библиотеку javascript.
Мы используем метод расширения html money, который создает знак $ непосредственно перед входом и вставляет атрибут, обозначающий его денежное значение. При изменении элементов с этим атрибутом мы выделяем знак $, если он найден на входах. Я знаю, что это не отвечает на ваш вопрос, но я считаю, что не допускать знаков доллара в рамках входных данных является стандартом. – DMulligan
У меня такая же проблема. Пока этот бит кода выглядит многообещающим '$ .validator.methods.number' – Frenchie