Почему клавиша Enter или Tab вызывает проверку в TextBox? - PullRequest
0 голосов
/ 23 февраля 2010

Почему эта разметка ...

<asp:TextBox ID="TextBox1" runat="server" CausesValidation="False"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegExValidatorTextBox1" runat="server" 
                                ControlToValidate="TextBox1" 
                                Text="Invalid date format." 
                                ValidationExpression="(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d">
</asp:RegularExpressionValidator>

... выдает ошибку проверки, когда я ввожу какую-то ерунду в TextBox, например "a", и нажму только клавишу Enter или Tab? Мне нравится проходить проверку не раньше, чем я нажму кнопку отправки.

(я работаю с VS2008 SP1, .NET 3.5 SP1, если это имеет значение.)

Ответы [ 2 ]

1 голос
/ 23 февраля 2010

Чтобы ответить на вопрос (почему клавиша Enter или Tab вызывает проверку в TextBox?), Когда вы нажимаете клавишу Enter, кнопка DefaultButton вызывает отправку формы обратно. Нажатие ввода аналогично нажатию на кнопку отправки.

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

1 голос
/ 23 февраля 2010

Установите для свойства EnableClientScript значение false. Это полностью предотвратит проверку на стороне клиента. Затем на стороне сервера обязательно проверьте свойство Page.IsValid, прежде чем продолжить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...