当JavaScript更改元素属性时,CSS是否应该更新?

当JavaScript更改元素属性时,CSS是否应该更新?,javascript,css,asp.net-mvc,asp.net-mvc-4,Javascript,Css,Asp.net Mvc,Asp.net Mvc 4,我有一些按钮,在javascript中我做一些操作。根据用户单击的内容,将启用和禁用按钮 逻辑和启用/禁用工作正常。但是我的css没有更新禁用按钮的外观。我想我的问题是,它是否应该自动更新?还是我需要以某种方式处理 如果相关的话,我正在使用ASP.NETMVC 我只是将此添加到视图顶部进行测试: <style> button[disabled] { background: green; } </style> 示例按钮: <button o

我有一些按钮,在javascript中我做一些操作。根据用户单击的内容,将启用和禁用按钮

逻辑和启用/禁用工作正常。但是我的css没有更新禁用按钮的外观。我想我的问题是,它是否应该自动更新?还是我需要以某种方式处理

如果相关的话,我正在使用ASP.NETMVC

我只是将此添加到视图顶部进行测试:

<style>
   button[disabled] {
       background: green;
   }
</style>
示例按钮:

<button onclick="nameClick(this)" name="FullNameExact" style="height:20%;width:75%;top:5%;left:13%;margin-bottom:5%">FULL NAME EXACT</button>

我可以在浏览器中看到该按钮获得了disabled属性,并且不可点击

按钮[disabled]不起作用,最好添加一些.disabled类,然后它就会起作用。

为什么不在禁用按钮时向按钮添加一个类呢?添加类时,将自动应用CSS

document.getElementById("MyElement").className = "MyClass";
通常,要在javascript中管理类,请执行以下操作:
我发现了问题所在。看看这个JSFIDLE:

我使你的代码在一把小提琴中可用。您所做的是通过在onclick属性中使用以下内容将DOM元素传递给函数:

<button onclick="nameClick(this)" name="FullNameExact" style="height:20%;width:75%;top:5%;left:13%;margin-bottom:5%">FULL NAME EXACT</button>
因此,当调用该函数时,它将尝试反转DOM元素。和错误

即使将“禁用”属性设置为布尔值,也不会起作用。您需要在布尔值或任何字符串上使用toString,即使是“a”或“foo”

这里一切正常。希望能有帮助


提示:不要使用onclick属性。相反,使用DOM事件处理。

它应该自动更新。HTML是什么样子的?它应该更新。因此,如果它不起作用,就有问题了。试试按钮[disabled=disabled]或者按钮:disabled其中一个选择器应该可以工作,我确信我确实试过了,还有[disabled=true]和其他几个具有相同结果的选择器你在用什么浏览器?并非所有浏览器都支持这种选择器
<button onclick="nameClick(this)" name="FullNameExact" style="height:20%;width:75%;top:5%;left:13%;margin-bottom:5%">FULL NAME EXACT</button>