Лучший способ проверки / создания текстового поля только номер? - PullRequest
4 голосов
/ 19 января 2010

Я хочу, чтобы текстовое поле содержало только цифры / валюту.

Так что, в принципе, он должен принимать этот тип ввода

$123
523,100
$12.50
85.59

и преобразовать это в

123
523100
12.50
85.59

и не должен принимать этот ввод

F12
309$2342
,102

Я посмотрел на элементы управления валидатора, но мне бы хотелось, чтобы это преобразование / проверка была полностью на стороне клиента. Что было бы лучшим способом сделать это?

Я также хотел бы, чтобы клиентская ошибка (окно сообщения или что-то еще) появлялась, если они пытаются ввести неверные данные и не дать им оставить неверные данные в текстовом поле. и затем, когда они выходят из фокуса текстового поля, они автоматически преобразуют данные в плоское число со стороны клиента.

Как бы мне начать это делать? Есть ли в ASP.Net что-то, что может мне помочь? Нужно ли мне просто использовать событие onfocus или какое событие предпочтительнее из javascript для проверки этого? Я также довольно неопытен в Javascript .. поэтому я прошу прощения, если это немного нюби.

И да, я также проверю на стороне сервера

Ответы [ 2 ]

1 голос
/ 19 января 2010

Вы можете попробовать проверить значения внутри текстового поля, используя isNaN(), чтобы проверить, является ли значение числом, после каждого нажатия клавиши.

В любом случае, до этого вопроса здесь уже приходилось отвечать: Проверить десятичные числав JavaScript - IsNumeric ()

0 голосов
/ 19 января 2010

Использование проверки на стороне клиента представляет собой угрозу безопасности, если вам необходимо отклонить определенные входные данные.

Вы можете использовать MaskedEditExtender или FilteredTextBox , если вы используете MS Ajax с вашим сайтом. В противном случае существует множество отличных javascripts для проверки клиента, особенно для использования с jQuery.

Только не игнорируйте проверку на стороне сервера.

...