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

时间:2011-09-07 15:09:41

标签: javascript button xhtml

我在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秒,但显然不是。

2 个答案:

答案 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