2011-09-07 113 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