我的表单上有几个必填字段和正则表达式。点击按钮即可触发验证。单击该按钮时,错误消息将显示asp:RequiredField
的声明位置,而不是验证摘要中的错误消息。这是我的代码:
验证摘要:
<asp:ValidationSummary id="mySummary" DisplayMode="List" HeaderText="Error:" EnableClientScript="true" ShowSummary="true" runat="server" ValidationGroup="valGroup" />
必填字段/正则表达式:
<!-- Required -->
<asp:RequiredFieldValidator ID="reqField1" ControlToValidate="txtSomething" ErrorMessage="Something is required" runat="server" Display="Static" InitialValue="" ValidationGroup="valGroup" />
<!-- Regex -->
<asp:RegularExpressionValidator runat="server" id="regexField1" ControlToValidate="txtSomething"
ErrorMessage="Something in the wrong format." ValidationExpression="^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$" ValidationGroup="valGroup">
</asp:RegularExpressionValidator>
按钮:
<asp:LinkButton ID="btnValidate" runat="server" CausesValidation="True" ValidationGroup="valGroup" >Validate</asp:LinkButton>
有什么建议吗?
答案 0 :(得分:0)
这很难说,因为它看起来像我的设置正确。调试的唯一方法是检查Page.Validators
集合,在那里找到验证器,并确保IsValid
对于那些人来说是假的。所有ValidationSummary
都会检查此集合,对于任何具有匹配验证组的人,如果IsValid
属性为false,则将其添加到已呈现的列表中。