2012-07-03 57 views
6

我有一個窗體,禁用了一些輸入。我希望這些輸入在雙擊時啓用。不幸的是,JS事件似乎不會禁用被禁用的輸入。javascript enable雙擊輸入

<input type="text" value="asdf" disabled="disabled" ondblclick="this.disabled=false;">​ 

有沒有辦法解決這個限制?

或者我只是要包裝任何受影響的輸入在一個範圍內以容納該事件?

http://jsfiddle.net/vhktx/

+1

重複的,你會發現這裏的解決方案:HTTP ://stackoverflow.com/questions/3100319/jquery-event-on-a-disabled-input – valentinas

+1

不是每個人都使用jQuery。此外,我正在尋找一個非包裝解決方案。 – Umbrella

回答

11

ondblclick沒有得到一個disabled元素上被炒了,你應該把它標記爲readonly

<input type="text" value="asdf" readonly="true" ondblclick="this.readOnly='';"> 

http://jsfiddle.net/vhktx/4/

+0

是的,這是一個首選解決方案。謝謝。 – Umbrella

+0

您還可以添加'onblur =「this.readOnly ='true';」'使其在輸入外單擊時返回其只讀狀態。使用':read-only' CSS標籤來設置元素的風格,同時它是隻讀而不是可編輯的。 – johnozbay

4

你將不得不包裹元素的容器,因爲該事件不會對禁用的元素火。

jsFiddle

<div ondblclick="document.getElementById('test').disabled=false;"> 
    <input type="text" id="test" value="asdf" disabled="disabled"></div> 
+0

我正在尋找一個非包裝解決方案。 – Umbrella

+0

如果您使用元素的原生禁用狀態,則不存在非包裝解決方案。 – Gabe

+0

不適用於Firefox在輸入中dblclicking時每夜16。有趣的是,即使在IE中它也能工作。 –