在文本框中选择所有文本的稳健方法

Emi*_*yan 4 html javascript xhtml

我试图在onFocus上完全选择HTML文本框的内容.

我知道在onfocus="this.select()"组件上放置一个简单的解决方案,但这不是一个好的解决方案,因为如果用户双击该区域,选择就会丢失,而在像Chrome这样的浏览器中,很少像它应该那样工作,只是恢复为输入形式.

我在谷歌搜索了一段时间,但找不到一个好的解决方案,大多数建议都是这个简单的解决方案.

我希望文本框中的选择在选择后不会更改,如果可能,用户不应该编辑文本框的内容,例如,如果您在从AdSense获取代码时使用了AdSense,则选择永远不会更改并且您无法更改文本框中的代码.

任何解决方案将不胜感激.

Tim*_*own 7

听起来好像你希望文本框是只读的.但是,我想说防止用户更改选择是一个坏主意:它给用户带来了困惑和不便,所以我没有实现.以下将在所有浏览器中聚焦时选择输入的内容,并且输入是只读的:

<input type="text" id="foo" readonly value="Some text">

<script type="text/javascript">
    var textBox = document.getElementById("foo");
    textBox.onfocus = function() {
        textBox.select();

        // Work around Chrome's little problem
        textBox.onmouseup = function() {
            // Prevent further mouseup intervention
            textBox.onmouseup = null;
            return false;
        };
    };
</script>
Run Code Online (Sandbox Code Playgroud)