2010-02-23 3 views
0

않는 이유는이 마크 업 ... 왜 Enter 또는 Tab 키가 TextBox에서 유효성 검사를 수행합니까?

<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> 

... 내가 "A"와 공격에만 입력하거나 탭 키와 같은 텍스트 상자에 약간의 넌센스를 입력 할 때 유효성 검사 오류를 던져? 제출 버튼을 클릭하기 전에 유효성 검사를하고 싶습니다. (내가 VS2008 SP1 함께 일하고 있어요, .NET 3.5 SP1, 즉 중요합니다.)

답변

1

Enter (입력 키 또는 Tab 키를 사용하면 TextBox에서 유효성 검사가 왜 발생합니까?) 질문에 답하려면 Enter 키를 누르면 DefaultButton이 양식을 다시 게시합니다. Enter를 누르면 제출 버튼을 클릭하는 것과 유사합니다.

입력시 다시 게시를 사용하지 않으려면 several solutions suggested here, see herehere for a JQuery based solution이 있습니다.

+0

그러나 페이지에는 전혀 버튼이 없습니다 (아직 없습니다). 이 페이지는 TextBox 및 유효성 검사기 만 포함하는 간단한 테스트 페이지입니다. – Slauma

+0

예, 양식은 입력시 제출됩니다. – RichardOD

+0

@ Slauma- 나는 내 대답을 편집했습니다. 제가 보낸 링크의 제안을 살펴보십시오. – RichardOD

1

false로 EnableClientScript 속성을 설정합니다. 이렇게하면 클라이언트 측의 유효성 검사가 완전히 차단됩니다. 그런 다음 서버 측에서 계속하기 전에 Page.IsValid 속성을 확인하십시오.

+0

저는 유효성 검사기에서 클라이언트 스크립트를 사용하지 않으려 고 시도했습니다. 이제 TAB을 눌렀을 때 유효성 검사가 실행되지 않지만 ENTER를 눌렀을 때 유효합니다. – Slauma

+1

글쎄, 내가 이해할 것 같아요 : Enter에서 게시가 발생하고 유효성 검사는 서버 측에서 발생합니다 - Tab 키를 누르는 것과는 대조적입니다. – Slauma

관련 문제