2010-02-23 35 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> 

...抛出一个验证错误,当我像“一”出手仅命中Enter或Tab键文本框中输入一些废话?我想在点击提交按钮之前进行验证。

(我与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和Validator。 – Slauma

+0

是的,但表格将在输入时提交。 – RichardOD

+0

@ Slauma-我编辑了我的答案 - 查看我发送的链接中的一些建议。 – RichardOD

1

设置EnableClientScript属性设置为false。这将完全阻止客户端的验证。然后在服务器端,请务必在继续之前检查Page.IsValid属性。

+0

我刚刚尝试过在验证器中禁用客户端脚本。现在,当我点击TAB时验证不会触发,但仍然按ENTER时。 – Slauma

+1

嗯,我想我明白了:在ENTER上回发发生,验证发生在服务器端 - 与点击TAB键相反。 – Slauma

相关问题