保持SetFocusOnError为true时如何修复验证摘要消息不刷新

时间:2019-05-08 10:55:04

标签: asp.net validation

我正在使用两个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>

1 个答案:

答案 0 :(得分:0)

请再次进行测试,因为当我查看并测试您的代码时,它工作得很好。 根据验证显示错误。如果仍然发生异常,请显示正确的代码。