1

Select all contents of textbox when it received focus (JavaScript or jQuery) でスクリプトを見ました。

残念ながら、IE10 に実装しようとしたときに、後でフォーカスもクリアされ、(WebKit ベースのブラウザーで機能した) デフォルトを防止することは単に機能していないように見えるという結論に達しました。

IE10 では正常に機能するようにしましたが、余分なブール変数で少し汚れているように感じます。

(基本) html:

<div id="ContentDiv">
    <input type="text" value="default" />
</div>

コード:

$(document).ready(initialize);

function initialize() {
    var tmp;
    $("#ContentDiv").on({
        focus: function (e) {
            //select for all browsers
            $(this).select();
            tmp = true;
        },
        mouseup: function (e) {
            //reselect for IE10
            if (tmp) {
                this.select();
                tmp = false;
            }
            //chrome still needs this
            e.preventDefault();
        }
    }, "input:text");
}

例: jsfiddle

私の質問:この選択オンフォーカスの問題を回避するよりクリーンな方法を知っている人はいますか?

4

1 に答える 1

2

したがって、タイムアウトのみを使用します。

http://jsfiddle.net/2BjQv/

$(document).ready(initialize);

function initialize() {
    $("#ContentDiv").on({
        focus: function (e) {
            setTimeout(function(){e.target.select();},0);
        }
    }, "input:text");
}

Firefox では少しバグがあるようです。

于 2013-05-30T13:42:22.350 に答える