【发布时间】:2014-07-02 14:47:34
【问题描述】:
我的页面上有两个验证组,分别称为“登录”和“注册”。每个组都有自己的 ValidationSummary 控件,并且还有许多RequiredFieldValidators。我遇到的问题是表单正在验证两个组,而不仅仅是一个。
这里是代码(为了简化,我省略了很多 HTML):
<div id="divRegisterBox">
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ValidationGroup="register" />
<asp:TextBox ID="tbRegisterEmail" runat="server" CssClass="form-control" placeholder="Required" ValidationGroup="register" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="tbRegisterEmail" runat="server" Text="" ErrorMessage="Please enter your email address." ValidationGroup="register" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" CssClass="errorMsg" ControlToValidate="tbRegisterEmail" runat="server" Text="" ErrorMessage="Please enter a valid email address." ValidationExpression="^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" ValidationGroup="register" />
<asp:TextBox ID="tbRegisterPassword" name="result-password" runat="server" CssClass="form-control" placeholder="Required" TextMode="Password" ValidationGroup="register" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" CssClass="errorMsg" ControlToValidate="tbRegisterPassword" runat="server" Text="" ErrorMessage="Please enter your password." ValidationGroup="register" />
<asp:Button ID="btnMobileRegister" runat="server" Text="Register" OnClick="btnMobileRegister_Click" ValidationGroup="register" />
</div>
<div id="divLoginBox">
<asp:ValidationSummary ID="ValidationSummary2" runat="server" ValidationGroup="login" />
<asp:TextBox CssClass="form-control" name="result-email" ID="tbResultEmail" placeholder="Required" runat="server" ValidationGroup="login"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" ControlToValidate="tbResultEmail" runat="server" Text="" ErrorMessage="Please enter your email address." ValidationGroup="login" CssClass="errorMsg" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator2" CssClass="errorMsg" ControlToValidate="tbResultEmail" runat="server" Text="" ErrorMessage="Please enter a valid email address." ValidationExpression="^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" ValidationGroup="login" />
<asp:TextBox CssClass="form-control" name="result-password" ID="tbResultPassword" placeholder="Required" TextMode="Password" runat="server" ValidationGroup="login"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" CssClass="errorMsg" ControlToValidate="tbResultPassword" runat="server" Text="" ErrorMessage="Please enter your password." ValidationGroup="login" />
<asp:Button ID="btnLoginMobile" runat="server" CssClass="btn btn-primary btn-block" Text="Login" OnClientClick="return MobileLoginSubmit();" ValidationGroup="login" OnClick="btnLoginMobile_Click" />
</div>
当我单击任一 Button 控件时,ValidationSummary 控件会显示页面上所有验证控件的验证消息。就好像它们都是同一个验证组的一部分。
我尝试将 CausesValidation="true" 和 "false" 添加到按钮,但似乎没有效果。
【问题讨论】:
标签: asp.net