Javascript 无法启用默认禁用的XHTML提交输入/按钮
我在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
<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
事件。