我正在使用两个asp.net验证控件。1.我的密码文本框使用RequiredFieldValidator和2. RegularExpressionValidator来验证用户输入并将其显示属性设置为none,这样,验证消息将仅在validationsummary控件中显示。
当我单击“提交”按钮时,验证将按预期方式显示,但是当我同时将两个验证者的SetFocusOnError用作true时,有时验证消息不会被刷新。如果在文本框中没有输入任何文本,然后单击“提交”按钮,它将显示必填字段验证消息,但是当输入任何文本并单击“提交”按钮时,它仍将显示必填字段验证消息,而不是RegularExpressionValidator验证消息,但是下次单击“提交”按钮时适当地展示 RegularExpressionValidator验证消息
<asp:TextBox ID="txtPass" CssClass="form-control" runat="server" TextMode="Password"
meta:resourcekey="txtPassResource1" autocomplete="off"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvPass" runat="server" SetFocusOnError="true" ControlToValidate="txtPass"
Display="None" ErrorMessage="Enter Password" ValidationGroup="submit"
meta:resourcekey="rfvPassResource1"></asp:RequiredFieldValidator>
<div class="password_error" style="width:auto;">
<asp:RegularExpressionValidator ID="rxvalPassword" runat="server" ErrorMessage="Password should be at least 6 characters in length. It should have at least one numeric and one special character from ~ ! @ # $ & _ . * "
ControlToValidate="txtPass" SetFocusOnError="true" ValidationExpression="^(?=.*[0-9])(?=.*[~!@#$&_.*])[A-Za-z0-9~!@#$&_.*]{6,15}$"
ValidationGroup="submit" Display="none" meta:resourcekey="SpecialCharResource2" />
</div>
<div class="rows col-md-offset-5">
<div class="width12">
<asp:ValidationSummary ID="valnewuser" runat="server" ValidationGroup="submit" meta:resourcekey="valnewuserResource1" EnableClientScript="True" />
</div>
</div>
<div class="col-md-offset-6">
<asp:Button ID="btnSubmit" runat="server" OnClientClick="return ValidatePage();" CssClass="btn btn-primary" Text="Submit" OnClick="btnSubmit_Click"
ValidationGroup="submit" meta:resourcekey="btnSubmitResource1" />
</div>
答案 0 :(得分:0)
请再次进行测试,因为当我查看并测试您的代码时,它工作得很好。 根据验证显示错误。如果仍然发生异常,请显示正确的代码。