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

在javascript中更改控件背景颜色-但是在提交表单之前如何在验证通过时重置颜色,javascript,jquery,asp.net,validation,requiredfieldvalidator,Javascript,Jquery,Asp.net,Validation,Requiredfieldvalidator,我使用以下代码更改页面上所有无效控件的背景色。但是,当背景颜色更改并且用户为字段输入了正确的值时,我希望在提交页面之前,背景重置为当前有效字段的原始颜色?我正在为所有控件使用RequiredFieldValidator,并且所有控件都具有相同的验证组(除了1个控件,该控件同时具有RequiredFieldValidator和RegularExpressionValidator。谢谢 function changeColor() { Page_Cli

我使用以下代码更改页面上所有无效控件的背景色。但是,当背景颜色更改并且用户为字段输入了正确的值时,我希望在提交页面之前,背景重置为当前有效字段的原始颜色?我正在为所有控件使用RequiredFieldValidator,并且所有控件都具有相同的验证组(除了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; 

              }
         }
函数changeColor()
{
Page_ClientValidate();
var i;
var-ctrl;
颜色变化;
对于(i=0;i
以下是如何调用上述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:returnchangecolor(this);”


通过这种方式,您应该有一个对控件的引用,然后您应该能够操纵它的CSS属性。我现在没有时间来模拟这个问题,但这是我头脑中突然想到的事情。

Javascript工作得非常好!但是,当Javascript将控件的颜色更改为w时如果验证失败,我希望在控件验证通过时(甚至在提交表单之前)颜色重置为原始颜色。脚本确实有效,而且非常棒。但是我同意Mike的观点,恢复控件原始颜色的解决方案肯定是一个加号