jQuery - 从文本区域中选择所有文本

2022-08-30 04:26:55

我如何使它,以便当您在文本区域内单击时,其整个内容都会被选中?

最终,当您再次单击时,请取消选择它。


答案 1

为了防止用户在每次尝试使用鼠标移动插入记号时选择整个文本时感到恼火,您应该使用事件而不是事件来执行此操作。以下内容将完成这项工作,并解决Chrome中阻止最简单的版本(即仅在事件处理程序中调用textarea的方法)工作的问题。focusclickselect()focus

jsFiddle: http://jsfiddle.net/NM62A/

法典:

<textarea id="foo">Some text</textarea>

<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>

jQuery 版本:

$("#foo").focus(function() {
    var $this = $(this);
    $this.select();

    // Work around Chrome's little problem
    $this.mouseup(function() {
        // Prevent further mouseup intervention
        $this.unbind("mouseup");
        return false;
    });
});

答案 2

更好的方法,解决标签和镶边问题以及新的jquery方式

$("#element").on("focus keyup", function(e){

        var keycode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
        if(keycode === 9 || !keycode){
            // Hacemos select
            var $this = $(this);
            $this.select();

            // Para Chrome's que da problema
            $this.on("mouseup", function() {
                // Unbindeamos el mouseup
                $this.off("mouseup");
                return false;
            });
        }
    });