我目前正在私人时间开发CMS,以了解有关asp.net的更多信息。 现在,我的页面上有两种形式。登录表单和让您订阅邮件列表的表单。两者都可以正常工作,并且都具有独立的验证组,可以防止在单击其他表单按钮时触发所需的字段验证器。
我在需要电子邮件的所有字段上执行此操作
<asp:TextBox TextMode="Email" ValidationGroup="toplogin" placeholder="Email..." ID="emailTB" runat="server">
每个文本框都具有这样的必填字段验证器
<asp:RequiredFieldValidator runat="server" ControlToValidate="emailTb" ValidationGroup="toplogin" SetFocusOnError="true" ErrorMessage="Please enter your email address"></asp:RequiredFieldValidator>
最后,每个表单都有一个类似的按钮
<asp:Button ID="topLogBtn" ValidationGroup="toplogin" runat="server" Text="Log In!" OnClick="topLogBtn_Click" />
因此,当文本框的文本模式设置为Email
时,就会发生此问题。如果在登录表单的电子邮件文本框中输入了无效数据,并且单击了订阅表单的按钮,它将告诉用户即使在单独的验证组中,也请在登录表单中输入有效的电子邮件地址。>
在添加验证组之前,我遇到了这个问题,我认为他们可以解决问题,但事实并非如此。有谁知道如何解决这个问题?如果登录表单文本框为空,则不会发生此问题。
这是订阅表单的代码。
<div ID="newsform" class="news-form" runat="server">
<div class="news-form-item"><asp:TextBox ID="newsNameTb" placeholder="Name..." ValidationGroup="newsletter" runat="server"></asp:TextBox> <asp:RequiredFieldValidator runat="server" ControlToValidate="newsNameTb" Display="Dynamic" ValidationGroup="newsletter" SetFocusOnError="true" ErrorMessage="Name Required"></asp:RequiredFieldValidator></div>
<div class="news-form-item"><asp:TextBox ID="newsEmailTb" placeholder="Email..." TextMode="Email" ValidationGroup="newsletter" runat="server"></asp:TextBox> <asp:RequiredFieldValidator runat="server" ControlToValidate="newsEmailTb" Display="Dynamic" ValidationGroup="newsletter" SetFocusOnError="true" ErrorMessage="Email Required"></asp:RequiredFieldValidator></div>
<div class="news-form-item"><asp:Button ID="newsEmailBtn" runat="server" ValidationGroup="newsletter" OnClick="newsEmailBtn_Click" Text="Subscribe!"></asp:Button></div>
</div>