Javascript:选择当前焦点输入字段中的文本

时间:2011-11-28 19:20:21

标签: javascript input focus

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

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

谢谢!

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

4 个答案:

答案 0 :(得分:4)

对不起,我误解了你在找什么,我觉得我现在对它有了更好的理解。这会做更多你想要实现的目标吗?

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

答案 1 :(得分:0)

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

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

编辑:

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

在示例中选择最后一个聚焦元素;但是如果你看代码那么var childInputHasFocus和whoHasFocus永远不会被设置为false ...当你想要停止选择功能时?

你想在哪里打电话?因为click事件将active / focused元素设置为caller。

答案 2 :(得分:0)

您可以查看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()};
     }
 }
 }

答案 3 :(得分:0)

这应该有效:

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