[英]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/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.