我想选择当前具有焦点的输入字段的文本,因此当用户开始输入时,当前在输入字段中的文本消失了。我可以用javascript(或jquery)吗?
如果当前具有焦点的字段不是输入字段,则不必发生任何事情。
谢谢!
编辑: 对所有的回答者:你们都误解了(所以我的问题可能并不清楚)。 我不想在输入字段获得焦点时选择文本。我想有一个javascript函数,它选择当时具有焦点的输入字段的文本。
答案 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();
}
}
答案 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>