Могу ли я заставить ASP.NET RangeValidator и события onblur/onfocus хорошо сочетаться друг с другом?

У меня есть текстовое поле для ввода суммы в валюте с элементом управления RangeValidator, который следит за тем, чтобы введенное значение находилось в диапазоне от 1 до 99999999,99.

Поле также имеет событие «onblur», которое запускает некоторый JavaScript для форматирования ввода с запятыми и десятичной точкой (например, 12455 -> 12 455,00). Также есть событие onfocus, которое обращает эффект onblur, возвращая значение в редактируемый формат (например, 12 455,00 -> 12455,00.

Моя проблема в том, что RangeValidator не любит отформатированное значение с запятыми и впоследствии не проходит проверку.

Есть ли способ обойти это? Я хочу иметь возможность проверять диапазон значений, но при этом отображать их в форматированном виде, когда текстовое поле не имеет фокуса. Я понимаю, что CustomValidator, вероятно, мог бы работать, но я надеялся заставить это работать с RangeValidator.


person eponymous23    schedule 11.12.2009    source источник


Ответы (2)


Просто измените тип RangeValidator на валюту (Type="Currency"), и он будет принимать запятые и любые другие символы валюты.

person Jonathan Foster    schedule 24.02.2010
comment
Изменение Type="Currency" позволяет использовать только две десятичные цифры. - person EricRobertBrewer; 13.07.2013

Простой. Вместо использования валидатора Range (элемент управления на стороне клиента для проверки на стороне клиента) добавьте несколько строк кода в метод OnBlur Javascript, что было бы лучше.

or

Используйте что-то вроде ссылки ниже

http://www.java2s.com/Code/ASP/Validation-by-Control/UseJavascriptandspvalidationcontroltogetherVBnet.htm

person solairaja    schedule 13.12.2009