繁体   English   中英

Javascript:在当前关注的输入字段中选择文本

[英]Javascript: select the text in the currently focussed input field

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

如果当前具有焦点的字段不是输入字段,则无需进行任何操作。

谢谢!

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

抱歉,我误解了您的期望,我认为我现在对此有了更好的了解。 这是否可以帮助您实现更多目标?

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

您可以尝试这样的事情吗? http://jsfiddle.net/z55UZ/

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

编辑:

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

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

您想在哪里调用该函数? 因为click事件将激活/集中的元素设置为呼叫者。

您可以使用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()};
     }
 }
 }

这应该工作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM