2011-09-07 115 views
-1

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

回答

1

由于某些原因,禁用的元素似乎不会触发mouseover/out事件以及点击。

以下不是世界上最好的解决方案,但您可以将它包装在另一个元素中,并使用包装元素的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> 
+0

哦,很奇怪。我只是将鼠标悬停事件添加到表单元素,而不是将其包裹在元素中。谢谢。 :) – animuson

+0

如果div的整个区域被该按钮占用,至少在Firefox中,'div'不会收到'mouseover'事件。您的代码仅适用于填充,因此可在按钮周围提供1px宽的触发区域。 –

+0

@Søren,因此我添加了它。 :) – epascarello