2012-07-03 20 views
6

Ich habe ein Formular mit einigen Eingängen deaktiviert. Ich möchte, dass diese Eingaben beim Doppelklicken aktiviert werden. Leider scheinen JS-Ereignisse bei deaktivierten Eingaben nicht ausgelöst zu werden.Javascript aktivieren Eingabe bei Doppelklick

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

Gibt es einen Weg um diese Einschränkung?

Oder muss ich nur jeden betroffenen Eingang in eine Spanne wickeln, um das Ereignis zu beherbergen?

http://jsfiddle.net/vhktx/

+1

doppelte, finden Sie Lösung finden Sie hier: http : //stackoverflow.com/questions/3100319/jquery-event-on-a-disabled-input – valentinas

+1

Nicht jeder verwendet jQuery. Außerdem suche ich nach einer Non-Wrap-Lösung. – Umbrella

Antwort

11

ondblclick nicht auf einem disabled Element gefeuert wird, sollten Sie es als readonly markieren:

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

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

+0

Ja, das ist eine bevorzugte Lösung. Vielen Dank. – Umbrella

+0

Sie können auch 'onblur = 'this.readOnly =' true ';" 'hinzufügen, damit es in den schreibgeschützten Zustand zurückkehrt, wenn außerhalb der Eingabe geklickt wird. Und verwenden Sie das ': read-only'-CSS-Tag, um das Element zu formatieren, während es schreibgeschützt und nicht editierbar ist. – johnozbay

4

Sie müssen das Element in einem Behälter wickeln, da die das Ereignis nicht auf behinderte Elemente ausgelöst.

jsFiddle

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

Ich bin auf der Suche nach einer Non-Wrap-Lösung. – Umbrella

+0

Es gibt keine Non-Wrap-Lösung, wenn Sie den nativen deaktivierten Status eines Elements verwenden. – Gabe

+0

Funktioniert nicht auf Firefox Nightly 16 beim dblclicking in der Eingabe. Lustig, wie es auch im IE funktioniert. –

Verwandte Themen