【问题标题】:Javascript: select the text in the currently focussed input fieldJavascript:选择当前焦点输入字段中的文本
【发布时间】:2011-11-28 19:20:21
【问题描述】:

我想选择当前具有焦点的输入字段的文本,所以当用户开始输入时,当前在输入字段中的文本消失了。我可以用 javascript(或 jquery)来做到这一点吗?

如果当前具有焦点的字段不是输入字段,则无需发生任何事情。

谢谢!

编辑: 致所有回答者:你们都误解了(所以我的问题可能不清楚)。 我不想在输入字段获得焦点时选择文本。我想要一个 javascript 函数来选择此时具有焦点的输入字段的文本。

【问题讨论】:

  • 在所有输入字段中还是仅在某些输入字段中?

标签: javascript input focus


【解决方案1】:

抱歉,我误解了您要查找的内容,我想我现在对它有了更好的理解。这是否能实现您想要实现的更多目标?

//If not using 1.7 for jquery you can use bind
$('input, textarea').on({
    focusin: function(){
        $(this).addClass("focused");
    },
    focusout: function(){
        $(this).removeClass("focused");
    }
});

function highlightText()
{
    var focused = $('input.focused,textarea.focused');

    if (focused.size()) {
        focused.get(0).select();   
    }
}

http://jsfiddle.net/GXFpR/1/

【讨论】:

  • 删除不是我想要的...我只是想选择输入字段的文本
【解决方案2】:

这应该可行:

<html>
<head>
</head>
<body>

<input type="text" id="theTextBox" onfocus="selectText()" value="some value"></input>
<script type="text/javascript">
function selectText() {
    document.getElementById("theTextBox").select();
};
</script>
</body>
</html> 

【讨论】:

    【解决方案3】:

    您可以使用 onfocus 检查,然后使用 this.select() 作为内联

      <input name="" type="text" value="test test" onfocus="this.select()" />
    

    更新:一种更通用的方法,将焦点添加到文本类型的输入,也输入非只读文本

      window.onload = setFocus(); 
    

    或在最后一个表单输入字段下方调用

      setFocus(); 
    

    主要

    setFocus = function(){
      var i = [];
      i = document.getElementsByTagName("input");
        for(var t=0; t < i.length; t++){
           if(i.item(t).type == "text" && i.item(t).readOnly == false){
              i.item(t).onfocus = function (){this.select()};
         }
     }
     }
    

    【讨论】:

      【解决方案4】:

      你可以试试这样的吗? http://jsfiddle.net/z55UZ/

       $("input, textarea").focus(
           function()
           {
               this.select();
           }
        )
      

      编辑:

      这是一个更新的小提琴:http://jsfiddle.net/IrvinDominin/z55UZ/2/

      在示例中选择了最后一个焦点元素;但是如果您查看代码,var childInputHasFocus 和 whoHasFocus 永远不会设置为 false...当您想停止选择功能时?

      你想在哪里调用函数?因为点击事件将活动/焦点元素设置为调用者。

      【讨论】:

      • @david,我不确定你的 tail between my legs 评论是什么意思。我只是编辑了爱德华和杰森的答案,这样我就可以删除我的反对票。我误读了 OP。
      猜你喜欢
      • 2010-12-17
      • 1970-01-01
      • 2013-02-06
      • 2017-09-12
      • 2013-07-18
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      相关资源
      最近更新 更多