【发布时间】:2013-02-25 14:54:14
【问题描述】:
我有一个 Web 应用程序,我正在其中进行一些客户端验证。这是通过添加到每个 Asp:TextBox
onkeyup="javascript: value_change(this);"
一旦达到价值变化,我就有了这个 Javascript...
function value_change (text_box) {
// validate code here
if (valid) {
text_box.className = "normalInput";
document.getElementById("GoButton").disabled = false;
}
else {
text_box.className = "errorInput";
document.getElementById("GoButton").disabled = true;
}
}
className 对应于 CSS 类,其显着部分如下所示:-
.normalInput
{
background-color: #ffffff;
}
.errorInput
{
background-color: #ff0000;
}
当页面最初显示时,这工作得很好,但在第一次回发之后,虽然调用了函数,设置了类名和 GoButton 灵敏度(我已经通过调试单步执行了这一点),背景颜色不会改变。
有谁知道这是为什么以及我应该怎么做?
编辑听从@Pete 的建议,我在新的类名被分配给它后立即检查了 text_box,并且似乎 currentStyle 属性保持不变。 currentStyle 的特性与 normalInput 类相同;我调整了它们并重新运行它来检查。所以我推断分配被忽略了,而不是不同的 CSS 以某种方式工作。
【问题讨论】:
-
一个活生生的例子可以很好地调试这个。
-
你在使用更新面板吗?
-
@Pete,不,页面中没有更新面板。
-
@t_virus,抱歉我帮不上忙;此应用程序仅供内部使用。
-
您是否在后面的代码中添加了 onkeyup 属性,如果 !page.ispostback 也我认为您不需要包含 javascipt:
标签: javascript asp.net css