获得焦点时,选择文本框的所有内容

时间:2013-05-30 13:13:08

标签: javascript jquery internet-explorer-10

我在Select all contents of textbox when it receives 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

我的问题:有没有人知道如何更清晰地解决这个焦点选择问题?

1 个答案:

答案 0 :(得分:2)

所以,仅使用超时:

http://jsfiddle.net/2BjQv/

$(document).ready(initialize);

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

在firefox中似乎有点小问题。