2011-01-04 2 views
0

У меня есть текстовое поле, в котором пользователь не может ввести более двух цифр после десятичного числа. Как это сделать без использования javascript?только две цифры разрешены после decimal asp.net

Спасибо.

+0

RegularExpressionValidator, как указано ниже, является хорошим вариантом, но какое выражение для проверки вы можете привести пример допустимых и недопустимых входов, чтобы дать точное точное выражение. – gbs

ответ

1

Вы не можете заставить текстовое поле прекратить прием текста после двух десятичных знаков без прямого или косвенного использования javascript. (Это иногда называют маской ввода).

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

2

Вы можете установить свойство MaxLength текстового поля, но у него нет понятия о том, есть или нет десятичная точка.

Вы также можете использовать CustomValidator и проверить введенный номер на сервере через событие ServerValidate. Но это потребует перехода на сервер, чтобы проверить значение (т. Е. Изначально будет выглядеть так, как ваша форма позволяет пользователям вводить недопустимые числа).

Вы также должны быть в состоянии использовать в RegularExpressionValidator, в зависимости от ваших конкретных требований глобализации, который будет использовать JavaScript на клиенте, чтобы обеспечить немедленную обратную связь:

<asp:TextBox ID="NumberTextBox" runat="server" /> 
<asp:RegularExpressionValidator runat="server" ControlToValidate="NumberTextBox" 
           ValidationExpression="\d+(?:(?:\.|,)\d{1,2})?" /> 

Если вы хотите мгновенную обратную связь с пользователем, вам нужно будет использовать решение на базе JavaScript.

+1

RegularExpressionValidator, вероятно, проще. Кроме того, хотя он использует JavaScript, элемент управления ASP.NET AJAX Toolkit MaskedEdit по меньшей мере больше похож на серверный элемент управления, чем на запись собственного jQuery. ;-) –

+0

Как мы можем проверить использование события проверки сервера? – lisa

+0

@lisa, так же, как вы подключаетесь к событию 'Click' кнопки' Button', подключитесь к событию 'ServerValidate'' CustomValidator', а затем установите 'args.IsValid' в зависимости от правильности ввода. – bdukes

0

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

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

Смежные вопросы