5

フォームをダブルクリックしてすべてのフォーム要素を有効にしようとしており、次のようにコードを簡略化しています。

<form>
    <input type="text" name="foo" disabled />
    <select name="bar" disabled>
        <option>a</option>
        <option>b</option>
    </select>
</form>

<script type="text/javascript">
    $(function() {
        $('form').dblclick(function() {
            $(this).find('input,select').removeAttr('disabled');
        });
    });
</script>

<select>ただし、無効な要素の上にカーソルを置いている間は、フォームのダブルクリック イベントは発生しません。残念ながら、「読み取り専用」属性<select>は要素では機能しません。

これは内部アプリケーション用であり、Google Chrome でのみ機能する必要があります。

アップデート:

これについて多くの回答を得ています。プロセスをガイドするために質問を修正する必要があると思います...無効なフォーム要素に関するW3C仕様は何と言っていますか? <input>...たとえば、Firefoxの無効な要素ではダブルクリックイベントが発生しないようです。おそらくChromeで起動するという事実は、常にそこにあるとは思えないバグ/仕様の不一致です。

現時点では、フォームの上に絶対に配置されたラッパー要素でダブルクリックイベントを監視するのが最良の選択肢のように思えます...余分なラッパー要素を追加するのは嫌いですが.

4

3 に答える 3

4

divフォーム全体をオーバーレイし、その上にクリック ハンドラーを配置することをお勧めします。無効なフィールドは、クリック ハンドラーを起動しません。

于 2013-06-26T15:22:00.427 に答える