如果在asp.net中使用验证器进行验证失败,请更改文本框的CssClass
本文关键字:验证 文本 CssClass 失败 net asp 如果 | 更新日期: 2023-09-27 18:21:25
如果asp.net中的验证失败,我想将CssClass更改为txtbox300CommentRED。
我找不到这样的办法。如果验证失败,我们是否可以告诉RequiredFieldValidator或其他Validator更改txtFullName的CssClass类?
<asp:TextBox ID="txtFullName" runat="server" CssClass="txtbox300Comment"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
我如何才能做到这一点,以及什么是无障碍或专业的方式。
感谢您的帮助。
RequiredFieldValidator的ErrorMessage属性可以包含各种HTML标记,因此您可以在其中放入Javascript。
ErrorMessage="Bad! <script type='text/javascript'>changeclass();</script>"
您可以从javascript访问验证器跨度,并更改他们正在验证的控件的css类。您可以在提交时运行此脚本。然而,我不确定如何确定特定控件是否有效。
例如,如果您有一个css类"error",您可以执行以下操作:
if (Page_ClientValidate() == false)
{
if (Page_Validators != null)
{
for (i = 0; i < Page_Validators.length; i++)
{
var validatedControl =
document.getElementById(Page_Validators[i].controltovalidate);
validatedControl.className = "error";
}
}
}
请参阅如何对所有ASP.Net验证器进行蒙皮?了解更多信息。
不幸的是,WebForms并不适合这种情况。如果可能的话,我建议使用MVC,或者尝试xVal for WebForms,这是一个基于DataAnnotations和jQuery Validate的开源验证库。
ControlToValidate="txtFullName"在RequiredFieldValidator 上设置
if(!RequiredFieldValidator1.IsValid){
//You might have to adjust where its looking for the control
TextBox txt = form1.FindControl(RequiredFieldValidator1.ControlToValidate) as TextBox;
if (txt != null)
{
txt.CssClass = "txtbox300Comment";
}
}