2012-07-03 9 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

ondblclickdisabled要素に解雇されません、あなたは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

入力時にdblclickingするとFirefox Nightly 16で動作しません。面白いIEの場合でもそれはどのように動作します。 –

関連する問題