即使CauseValidation =“false”,Asp.net regularexpressionvalidator也会触发

时间:2010-03-25 15:27:37

标签: asp.net

我有一个regularrexpression验证程序验证有效的电子邮件。我的表格上有两个按钮。提交并撤消。

在撤消时,我们将页面状态恢复为默认值

submit有验证组设置,而undo没有任何验证组和CausesValidation =“false”。

现在当我导航到页面并输入无效的电子邮件地址时,我直接点击撤消。验证器触发并阻止我的页面发布。但是,如果我按下选项卡并导航到其他控件然后单击撤消,验证器会显示错误消息,但会回发并进一步完成处理。

这很奇怪,当我点击undo.how来实现它时,我希望页面回发时没有任何错误消息。

<tec:ThemedImageButton runat="server" ID="imgbtnSave" OnClick="imgbtnSave_Click"
     ValidationGroup="CustomerGroup"/>
<tec:ThemedImageButton runat="server" ID="imgbtnCancel" CausesValidation="false"
                                                OnClick="imgbtnCancel_Click" />

这些是添加了themes.HustomerGroup的常规图像按钮,是我的文本框和regularexpressionvalidator的验证组

3 个答案:

答案 0 :(得分:0)

当您的焦点仍在电子邮件文本框中时,您是否可以点击撤消?如果是这样,可能问题是文本框的初始模糊事件正在触发,而这又触发了电子邮件验证器并阻止了点击/提交。

首先要确保您可以输入无效的电子邮件地址,将焦点移到页面的完全不同的区域,然后按撤消以确定是否是原因。

答案 1 :(得分:0)

仔细检查您的设置。 您可能需要检查后面的代码,以确保您没有覆盖那里的控件设置。例如,在代码中,您可能将CausesValidation设置为“True”或类似的东西。

答案 2 :(得分:0)

在发布更多信息之前,您可以在撤消按钮中执行以下操作:

<asp:Button ID="btnUndo" runat="server" Text="Undo"
    OnClientClick="Page_ValidationActive = false;"
    OnClick="btnUndo_Click" />

我不建议这样做,因为它可能会解决您的问题,但实际上并未解释错误连接的内容,但Page_ValidationActive = false;将禁用您网页上的所有客户端验证。