我的母版页面上有一些用于电子邮件订阅的控件。
网络表单工作正常,但在没有输入电子邮件地址的情况下不会触发验证。
<asp:UpdatePanel ID="updSubscribe" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="pnlSubscribe" runat="server" >
<asp:TextBox ID="txtEmail" CssClass="form-control form-subscribe-input" runat="server" placeholder="YOUR EMAIL"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvEmailSub" runat="server" ErrorMessage="*" ControlToValidate="txtEmail" ValidationGroup="SubEmail" ></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revEmailSub" runat="server" ErrorMessage="*" ControlToValidate="txtEmail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ValidationGroup="SubEmail" ></asp:RegularExpressionValidator>
<span class="input-group-btn">
<asp:Button ID="btnSubscribe" CssClass="btn btn-maroon" runat="server" ValidationGroup="SubEmail" Text="Subscribe" onclick="btnSubscribe_Click" />
</span>
</asp:Panel>
<asp:Panel ID="pnlSubscribeMSG" CssClass="pnlSubscribeMSG" runat="server" >
<asp:Label ID="lblSubscribeMSG" runat="server" Text="">
</asp:Label>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
我不确定代码有什么问题。
更新:
在进一步的故障排除中,我注意到相同的代码适用于页面上没有母版页的验证。
不确定实际发生了什么。
答案 0 :(得分:2)
问题归因于script manager
,因为它无法正确加载脚本文件导致验证失败,花了几个小时后我很幸运地弄明白了。
所以不要将脚本管理器添加为
<asp:ScriptManager runat="server"></asp:ScriptManager>
我将其添加为
<asp:ScriptManager runat="server">
<Scripts>
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" />
</Scripts>
</asp:ScriptManager>
link解决方案来源