Asp.net 验证时更改文本框边框和背景失败
是否可以使用javascript,以便在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){
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
控件指定服务器端验证函数。