javascript - 在javascript中更改控件背景颜色 - 但是如何在提交表单之前通过验证时重置颜色

标签 javascript jquery asp.net validation requiredfieldvalidator

我正在使用以下代码更改页面上所有无效控件的背景颜色。但是,当背景颜色发生变化并且用户为该字段输入了正确的值时,我希望在提交页面之前将背景重置为现在有效字段的原始颜色吗?我对所有控件都使用 RequiredFieldValidators,并且所有控件都具有相同的验证组(除了 1 个控件,它同时具有 RequiredFieldValidator 和 RegularExpressionValidator。谢谢!

  function changeColor()
         {
             Page_ClientValidate();
             var i;
             var ctrl;
             var prevColor;
             for (i = 0; i < Page_Validators.length; i++) {
               ctrl = document.getElementById(Page_Validators[i].controltovalidate);
               prevColor = document.getElementById(Page_Validators[i].controltovalidate).style.backgroundColor;
               if (!Page_Validators[i].isvalid)
                    ctrl.style.backgroundColor = '#FFAAAA';
               else
                   ctrl.style.backgroundColor = prevColor; 

              }
         }

上面的 javascript 是这样调用的:

<asp:ImageButton AlternateText="Press btn" 
                 ID="SaveButton" 
                 runat="server" 
                 ImageUrl="~/css/btnSave.png" 
                 OnClick="btpress_Click" 
                 OnClientClick="javascript:return changeColor();"/>    

最佳答案

我假设您发布的 JavaScript 不起作用?您是否尝试过将“this”传递给 changeColor()?

例如,OnClientClick="javascript:return changeColor(this);"

这样你应该有一个对控件的引用,然后你应该能够操作它的 CSS 属性。我现在没有时间模拟这个问题,但这是我突然想到的事情。

关于javascript - 在javascript中更改控件背景颜色 - 但是如何在提交表单之前通过验证时重置颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11210537/

相关文章:

javascript - 初始化时显示 Twitter Bootstrap 模式

c# - 调用代码隐藏的确认对话框并获取所选选项

c# - 使用 ClaimsPrincipal.Current 获取用户详细信息

javascript - 错误: [$injector:unpr] Unknown provider: a

javascript - 覆盖流对象类型中的单个字段类型的通用方法

javascript - 使用原型(prototype)时从类获取方法

javascript - 要求是只删除浏览器窗口上的地址栏,但保留其余的工具栏选项

javascript - SortableJS - 禁用对特定元素的排序

javascript - 在 IE 中隐藏 <option>

ASP.NET Web 服务(复数)或具有多个类的 Web 服务