1

我正在使用以下代码更改页面上所有无效控件的背景颜色。但是,当背景颜色发生变化并且用户输入了正确的字段值时,我希望在提交页面之前将背景重置为现在有效字段的原始颜色?我对所有控件都使用了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();"/>    
4

1 回答 1

2

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

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

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

于 2012-06-26T15:42:57.943 回答