我试图在验证器为假时应用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";
}
答案 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";
}
}