Javascript 无法启用默认禁用的XHTML提交输入/按钮

Javascript 无法启用默认禁用的XHTML提交输入/按钮,javascript,button,xhtml,Javascript,Button,Xhtml,我在XHTML中有一个简单的按钮: <input type="submit" name="submit" value="Test" disabled="disabled" onmouseover="this.disabled=''" /> 问题是,无论我尝试什么,当我将鼠标悬停在按钮上时,它都不会从其已禁用的属性重新启用。在XHTML中,需要使用disabled=“disabled”,这似乎完全破坏了使用JavaScript启用/禁用它的选项。我试过运行this.disable

我在XHTML中有一个简单的按钮:

<input type="submit" name="submit" value="Test" disabled="disabled" onmouseover="this.disabled=''" />

问题是,无论我尝试什么,当我将鼠标悬停在按钮上时,它都不会从其已禁用的属性重新启用。在XHTML中,需要使用
disabled=“disabled”
,这似乎完全破坏了使用JavaScript启用/禁用它的选项。我试过运行
this.disabled='
this.disabled=false
,甚至
this.removeAttribute('disabled')
,但似乎没有任何东西能够重新启用按钮。奇怪的是,如果我删除属性的
='disabled'
部分(使其成为无效的XHTML),脚本就会很好地启用按钮。如果不使用无效的XHTML,这是不可能的吗

注意:对于这个特定的示例,我更愿意只使用JavaScript,而不是jQuery


我认为这将是一个简单的过程,需要5秒钟,但显然不是这样。

disabled=false
是正确的


问题是禁用的元素不接收事件。请参阅问题。

由于某些原因禁用的元素似乎不会随着单击一起触发鼠标覆盖/退出事件

以下不是世界上最好的解决方案,但您可以将其包装到另一个元素中,并使用包装元素的mouseover事件来启用它

<div style="display:inline-block;padding:1px;" onmouseover="document.getElementById('submit').disabled=false">
    <input type="submit" id="submit" name="submit" value="Test" disabled="disabled" />
</div>


哦,非常奇怪。我只是将鼠标悬停事件添加到表单元素中,而不是将其包装到元素中。谢谢。:)如果按钮占据了
div的整个区域,则它不会收到
mouseover
事件,至少在Firefox中是这样。您的代码之所以有效,是因为有了填充,按钮周围有一个1px宽的触发区域。@Søren,这就是我添加它的原因。:)但是,如果鼠标移动得足够快,用户完全可以在不触发1px
鼠标盖的情况下将鼠标移动到按钮上。通常,您不能指望鼠标移动的每个像素都会出现
mouseover
事件。