2012-05-04 2 views
2

Я использую 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.

+0

Мы используем метод расширения html money, который создает знак $ непосредственно перед входом и вставляет атрибут, обозначающий его денежное значение. При изменении элементов с этим атрибутом мы выделяем знак $, если он найден на входах. Я знаю, что это не отвечает на ваш вопрос, но я считаю, что не допускать знаков доллара в рамках входных данных является стандартом. – DMulligan

+0

У меня такая же проблема. Пока этот бит кода выглядит многообещающим '$ .validator.methods.number' – Frenchie

ответ

0

Как насчет пользовательского метода проверки, который сначала пытается отключить любые символы $ до проверки?

var currentVal = (control's actual value); 
    currentVal = currentVal.replace('$',''); 

Затем продолжите проверку. Очевидным недостатком является необходимость использования специальных валидаторов.