C# 如果使用验证器在asp.net中验证失败,请更改文本框的CssClass

C# 如果使用验证器在asp.net中验证失败,请更改文本框的CssClass,c#,asp.net,validation,C#,Asp.net,Validation,如果asp.net中的验证失败,我想将CssClass更改为TXTBOx300Commented 我找不到办法来做这件事。如果验证失败,我们是否可以告诉RequiredFieldValidator或其他验证程序更改txtFullName的CssClass类 <asp:TextBox ID="txtFullName" runat="server" CssClass="txtbox300Comment"></asp:TextBox> <asp:RequiredField

如果asp.net中的验证失败,我想将CssClass更改为TXTBOx300Commented

我找不到办法来做这件事。如果验证失败,我们是否可以告诉RequiredFieldValidator或其他验证程序更改txtFullName的CssClass类

<asp:TextBox ID="txtFullName" runat="server" CssClass="txtbox300Comment"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>

我如何才能做到这一点,什么是无麻烦或专业的方式来做到这一点


谢谢你的帮助

您可以从javascript访问验证程序范围,并更改正在验证的控件的css类。您可以在提交时运行此脚本。但是,我不确定如何确定特定控件是否有效

例如,如果您有css类“错误”,您可以执行以下操作:

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";
        }
    }
}
if(Page_ClientValidate()==false)
{
如果(第页验证程序!=null)
{
对于(i=0;i
有关更多信息,请参阅


不幸的是,WebForms并不适合这样做。如果可能的话,我建议使用MVC,或者尝试使用基于DataAnnotations和jQuery Validate的开源验证库

您可以从javascript访问验证程序范围,并更改正在验证的控件的css类。您可以在提交时运行此脚本。但是,我不确定如何确定特定控件是否有效

例如,如果您有css类“错误”,您可以执行以下操作:

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";
        }
    }
}
if(Page_ClientValidate()==false)
{
如果(第页验证程序!=null)
{
对于(i=0;i
有关更多信息,请参阅


不幸的是,WebForms并不适合这样做。如果可能的话,我建议使用MVC,或者尝试使用基于DataAnnotations和jQuery Validate的开源验证库

RequiredFieldValidator的ErrorMessage属性可以包含各种HTML标记,因此可以将Javascript放入其中

ErrorMessage="Bad! <script type='text/javascript'>changeclass();</script>"
ErrorMessage=“坏!changeclass();”

RequiredFieldValidator的ErrorMessage属性可以包含各种HTML标记,因此可以将Javascript放入其中

ErrorMessage="Bad! <script type='text/javascript'>changeclass();</script>"
ErrorMessage=“坏!changeclass();”
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";
    }

}
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";
    }

}

我不能使用MVC它纯粹是一个web表单项目看看这个:[[1]:我不能使用MVC它纯粹是一个web表单项目看看这个:[[1]:但是OP想要更改文本框的类,而不是验证器。但是OP想要更改文本框的类,而不是验证器。至少对于其他用途很好。至少对于其他用途很好。