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