无法通过C#应用CssClass

时间:2016-04-25 10:39:39

标签: c# asp.net validation

我试图在验证器为假时应用CssClass,它过去对我有效,现在我不知道为什么它不起作用。

文本框:

<asp:TextBox ID="txtPass"
    AutoPostBack="false" 
    ClientIDMode="Static" 
    runat="server"
    placeholder="Password (8 - 16 digits)" 
    CssClass="Text" 
    type="password" 
    ValidationGroup="check">
</asp:TextBox>

附加到此文本框的验证程序:

<asp:RegularExpressionValidator ID="revPass"
    runat="server"
    Display="None" 
    ControlToValidate="txtPass"
    EnableClientScript="false"
    ValidationExpression="[a-zA-Z0-9]{8,16}"
    ValidationGroup="check">
</asp:RegularExpressionValidator>

<asp:RequiredFieldValidator ID="rfvPass"
    runat="server"
    EnableClientScript="false"
    ControlToValidate="txtPass"
    Display="None"
    ValidationGroup="check">
</asp:RequiredFieldValidator>

<asp:CompareValidator ID="cvPasswords"
   runat="server"
   ErrorMessage="Passwords do not match!"
   EnableClientScript="false"
   CssClass="error"
   ControlToCompare="txtPass"
   ControlToValidate="txtConPass"
   ValidationGroup="check">
</asp:CompareValidator>

但我必须说只有最后一个有效。验证器有效,只是不改变CssClass修改 它甚至不是我检查过的if state态。有if语句: if (!(revPass.IsValid) || !rfvPass.IsValid) { txtPass.CssClass = "txtError"; }

1 个答案:

答案 0 :(得分:0)

如果您想在Validator的错误消息上应用Css那么您必须设置所有验证器的CssClass属性..

更新:对不起,我误解了你的问题。你有没有试过这个On Code背后的

protected void Button1_OnClick(object sender, EventArgs e) { if (Page.IsValid) { // code executed when validation are valid } else { txtPass.CssClass = "Your New Class"; txtConPass.CssClass = "Your New Class"; } }