我在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秒,但显然不是。
答案 0 :(得分:1)
由于某种原因,禁用的元素似乎不会触发mouseover / out事件以及click。
以下不是世界上最好的解决方案,但您可以将其包装在另一个元素中,并使用包装元素的鼠标悬停事件来启用它。
<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>
答案 1 :(得分:0)
disabled=false
是正确的。
问题是禁用的元素不会接收事件。请参阅问题Javascript OnMouseOver and Out disable/re-enable item problem。