javascript - 回发后 CSS 颜色无法在 Javascript 中使用

标签 javascript asp.net css

我有一个 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/

相关文章:

c# - Kendo Grid 内联编辑日期格式问题

html - 循环遍历数据库以显示 div 中的信息

javascript - 通过垂直进入制作 Div 容器负载

Javascript 正则表达式使用 ñ 字符验证电子邮件

javascript - Gridview 模板 Javascript 数据绑定(bind)

asp.net - 如何衡量 ASP.NET MVC ActionLink 的成功?

html - 如何有条件地否定段落标签上的文本缩进

javascript - CSS - 从样式 block 扩展样式表样式

javascript - Chrome 扩展 : converting a localStorage value to boolean in content script

javascript - 获取页面上任何 iframe 内的选定文本