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

Changing control background color in but how to reset color when validation passses before submitting the form

本文关键字:颜色 验证 过时 控件 提交 背景 表单      更新时间:2023-09-26

我使用以下代码更改页面上所有无效控件的背景颜色。但是,当背景颜色更改并且用户为字段输入正确的值时,我希望在提交页面之前将背景重置为现在有效的字段的原始颜色?我对所有控件使用 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属性。 我目前没有时间模拟这个问题,但这是我从头顶上想到的。