【问题标题】:Changing control background color in javascript - but how to reset color when validation passses before submitting the form在javascript中更改控件背景颜色-但是如何在提交表单之前通过验证时重置颜色
【发布时间】:2012-06-26 15:17:31
【问题描述】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • Javascript 完美运行!但是,当 javascript 更改验证失败的控件的颜色时,我希望在控件验证通过时(甚至在提交表单之前)将颜色重置为原始颜色。
    • 脚本确实有效,而且很棒。不过我同意 Mike 的观点,即恢复控件的原始颜色的解决方案绝对是一个加分项
    猜你喜欢
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 2018-09-19
    • 2017-01-15
    • 2015-08-05
    • 2015-06-23
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多