2011-11-28 92 views
0

我想选择当前具有焦点的输入字段的文本,因此当用户开始输入时,当前输入字段中的文本消失了。我可以用JavaScript(或jQuery)来做到这一点?Javascript:选择当前焦点输入字段中的文本

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

谢谢!

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

+1

所有输入字段或者只是某一个(或多个)? – arb

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

+0

删除不是我想要的...我只想选择输入字段 – Fortega

0

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

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

编辑:

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

在该例子中选择的最后一个聚焦元件;但如果你看代码var childInputHasFocus和whoHasFocus永远不会设置为false ...当你想停止选择功能?

你想调用函数?因为点击事件将主动/被聚焦的元素设置为调用者。

+0

在问题中,“我可以用javascript(或jquery)来做到这一点吗?”所以... –

+0

我很抱歉,我错过了。 –

+0

@david,我不确定你的“尾巴之间的尾巴”是什么意思。我只是编辑了爱德华和杰森的答案,以便我可以删除我的反对票。我误解了OP。 –

0

你可以用聚焦状态检查,然后用this.select()为内联

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

更新:一个更通用的方法,将新增重点的文本类型也输入文本的输入是是不是只读

window.onload = setFocus(); 

或调用NETH最后一个表单输入字段

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()}; 
    } 
} 
} 
+0

的文本:-(请参阅我的编辑 – Fortega

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

:-(查看我的编辑 – Fortega