我有一个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以某种方式起作用。
最佳答案
客户端上更改的样式不会发送回服务器。您必须自己在服务器上设置属性以保留它们。服务器从服务器上可用的属性集中建立控件定义,然后重新呈现原始值。这是因为仅文本框的值回发到服务器;其他一切都没有。
话虽如此,您可以解释启用或禁用按钮的条件,设置适当的CSS样式,并在服务器上设置这些属性,或者在文档加载时重新应用样式。
关于javascript - 回传后CSS颜色无法在Javascript中使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15069785/