Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 验证时更改文本框边框和背景失败_Asp.net_Css_Textbox - Fatal编程技术网

Asp.net 验证时更改文本框边框和背景失败

Asp.net 验证时更改文本框边框和背景失败,asp.net,css,textbox,Asp.net,Css,Textbox,是否可以使用javascript,以便在asp.net验证程序失败时(例如,输入与正则表达式不匹配),文本框边框和背景颜色会变为红色。我以前看过,但我忘了在哪里 有人能把我和这样一个活生生的例子联系起来吗 我能做到这一点的方法是什么 谢谢 编辑: 使用此解决方案: validateField = function(sender, args){ //do your validation logic if (!args.IsValid){

是否可以使用javascript,以便在asp.net验证程序失败时(例如,输入与正则表达式不匹配),文本框边框和背景颜色会变为红色。我以前看过,但我忘了在哪里

有人能把我和这样一个活生生的例子联系起来吗

我能做到这一点的方法是什么

谢谢

编辑:

使用此解决方案:

validateField = function(sender, args){        
    //do your validation logic        
    if (!args.IsValid){
        var ctrl = $("#" + sender.controltovalidate);
        if (ctrl){
            ctrl.css({ "background-color" : "#990000", "border" : "1px solid #993300" });
        }
    }
    return args.IsValid;
}
如果我想知道在哪里使用常规表达式,这是正确的方法吗

validateField = function(sender, args){        
    var regEx=(some regex forumla)
    if (sender.value.search(regEx)==-1)        
        var ctrl = $("#" + sender.controltovalidate);
        if (ctrl){
            ctrl.css({ "background-color" : "#990000", "border" : "1px solid #993300" });
        }
    }
   else
        {
           return args.IsValid;
         }
}
很抱歉我缺乏知识,我以前从未使用过javascript。此外,什么是:

 return args.IsValid;

最后,我做了类似的事情

    Private Sub HighlightInvalidFields()

    For Each validator As IValidator In Page.Validators
        If TypeOf validator Is BaseValidator Then
            If CType(validator, BaseValidator).IsValid = False Then

                Dim controlId As String = CType(validator, BaseValidator).ControlToValidate
                Dim control As WebControl = TryCast(Me.FindControlRecursive(controlId), WebControl)

                If control IsNot Nothing Then
                    control.Style.Add("background-color", "#B85449")
                End If

            End If
        End If
    Next

End Sub
我从页面上称之为_prerender

    Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    If Page.IsPostBack Then HighlightInvalidFields()
End Sub

我做过类似的事情

    Private Sub HighlightInvalidFields()

    For Each validator As IValidator In Page.Validators
        If TypeOf validator Is BaseValidator Then
            If CType(validator, BaseValidator).IsValid = False Then

                Dim controlId As String = CType(validator, BaseValidator).ControlToValidate
                Dim control As WebControl = TryCast(Me.FindControlRecursive(controlId), WebControl)

                If control IsNot Nothing Then
                    control.Style.Add("background-color", "#B85449")
                End If

            End If
        End If
    Next

End Sub
我从页面上称之为_prerender

    Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
    If Page.IsPostBack Then HighlightInvalidFields()
End Sub

您可以使用
CustomValidator
,如果验证失败,您可以在客户端验证功能中更改边框和背景颜色:

validateField = function(sender, args){        
    //do your validation logic        
    if (!args.IsValid){
        var ctrl = $("#" + sender.controltovalidate);
        if (ctrl){
            ctrl.css({ "background-color" : "#990000", "border" : "1px solid #993300" });
        }
    }
    return args.IsValid;
}
验证功能:

validateField = function(sender, args){        
    //do your validation logic        
    if (!args.IsValid){
        var ctrl = $("#" + sender.controltovalidate);
        if (ctrl){
            ctrl.css({ "background-color" : "#990000", "border" : "1px solid #993300" });
        }
    }
    return args.IsValid;
}
标记:

<asp:TextBox ID="TextBox1" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server" EnableClientScript="true"
    ErrorMessage="Required"
    ClientValidationFunction="validateField" 
    ControlToValidate="TextBox1"
    Display="Dynamic">
</asp:CustomValidator>

您可以使用
CustomValidator
,如果验证失败,您可以在客户端验证功能中更改边框和背景颜色:

validateField = function(sender, args){        
    //do your validation logic        
    if (!args.IsValid){
        var ctrl = $("#" + sender.controltovalidate);
        if (ctrl){
            ctrl.css({ "background-color" : "#990000", "border" : "1px solid #993300" });
        }
    }
    return args.IsValid;
}
验证功能:

validateField = function(sender, args){        
    //do your validation logic        
    if (!args.IsValid){
        var ctrl = $("#" + sender.controltovalidate);
        if (ctrl){
            ctrl.css({ "background-color" : "#990000", "border" : "1px solid #993300" });
        }
    }
    return args.IsValid;
}
标记:

<asp:TextBox ID="TextBox1" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server" EnableClientScript="true"
    ErrorMessage="Required"
    ClientValidationFunction="validateField" 
    ControlToValidate="TextBox1"
    Display="Dynamic">
</asp:CustomValidator>

公共类更改颜色页面:第页{
公共标签lblZip;
公共RegularExpressionValidator valZip;
受保护的重写void OnLoad(EventArgs e){
Page.Validate();
lblZip.ForeColor=valZip.IsValid?颜色。黑色:颜色。红色;
}               
}

公共类更改颜色页面:第页{
公共标签lblZip;
公共RegularExpressionValidator valZip;
受保护的重写void OnLoad(EventArgs e){
Page.Validate();
lblZip.ForeColor=valZip.IsValid?颜色。黑色:颜色。红色;
}               
}

请注意,我有一个继承System.Web.UI.Page的基类,因此此代码不会在每个页面上复制,我只是让每个页面从基页继承。请注意,我有一个继承System.Web.UI.Page的基类,因此此代码不会在每个页面上复制,这可能会有所帮助,我只是让每个页面都继承自基本页面。谢谢,我喜欢这个解决方案。如果我使用javascript进行验证,是否还需要编写一个用于服务器端的c#验证程序?您可以使用
CustomValidator
控件指定服务器端验证功能。谢谢,我喜欢这个解决方案。如果我使用javascript进行验证,是否还需要编写一个c#验证器用于服务器端?您可以使用
CustomValidator
控件指定服务器端验证函数。