选择聚焦文本
Select text on focus
我正在尝试使用jQuery在只读输入框中选择文本,这就是我所拥有的:
$('input').focus(function(){
$(this).select();
})
然而,当我点击输入时,它会快速选择所有文本,"闪烁",然后返回到未选中的正常状态。
对此有什么想法吗?
我使用以下代码使其工作。我的chrome版本:Version 24.0.1312.52
$("#inputid").on("focus",function(e){
$(this).select();
});
$("#inputid").on("mouseup",function(e){
return false;
});
希望这能帮助。。。
这两种技术的组合对我很有效,尽管我的盒子不是只读的。正常的select()在Firefox中立即生效。然而,在Safari中,mouseup和事件排序会导致它在mouseup时再次取消选择自己。我附加了一个mouseup事件,该事件在mouseup应该完成干扰之后(如果文本仍然是要替换的默认文本),在延迟计时器上启动一个选择。
示例:
$('#your_selector').focus(function() {
$(this).select();
}).mouseup(function() {
if ($(this).val() === 'Enter search terms here'){
var _self = this;
setTimeout(function(){ _self.select()},30)
}
});
问题在于输入框是只读的(正如您在问题中提到的那样)
(这不是jQuery或javascript问题)
IE、FF和Opera没有问题。但是Chrome和Safari展示了你提到的问题。。
看起来是一个不同的实现,我不确定你能否解决这个问题。。
演示到展示(在控制台打开的所有浏览器中检查)
http://jsfiddle.net/gaby/N9qzq/3/
<input onClick="this.select()" value="Blabla und Blublu" type="text" />
应该工作
这里发生了一点奇怪的事情。focus
发生在鼠标放下时,但光标放置发生在click
上(即mousedown
后面跟着mouseup
)。放置光标后,任何选择都将消失。
因此,您很可能希望保留focus
事件(用于选项卡和trigger
),但也要添加click
或mouseup
处理程序,以便在单击时进行实际选择。
$('input[type="text"]').focus(function() {
$(this).select();
}).click(function() {
if ($(this).val() === 'Your default value')
{
$(this).select();
}
});
if
的存在使得一旦用户在您的输入中自定义了文本,他们就可以在不选择文本的情况下四处点击。不过,这并不真正适用于readonly
文本输入,因此可以安全地将其删除。
编辑:代码似乎充其量是不一致的,所以这可能不是解决方案。
根据Gaby在他们的帖子中所写的内容,这个解决方案似乎对我有效:
$('input').focus(function(){
var _self = this;
setTimeout(function(){ console.log(_self.select())},100)
})
我在浏览器上测试时遇到了这个问题。谷歌也有这个问题,我想Opera也是。Firefox,IE可以。我通过这个解决了问题。在onclick和onfocus上都选择()。
由于人们提到的不一致性,你能用CSS来模拟你的选择吗?当输入接收到焦点时,应用CSS color
和background-color
,使其看起来像是被选中的。
- 当没有文本输入聚焦时检测空格键按下
- 无法使用 $('input[name=“rate”]').focus() 聚焦文本框;方法
- 不允许输入或聚焦的输入类型文本
- 想要清除文本框+聚焦文本框+阻止asp.net在同一按钮上回发
- 文本框聚焦事件并在IE9中输入问题
- jQuery聚焦文本框并转到末尾,但也可以设置光标的位置,以便用户可以看到它
- 当文本字段或文本区域使用纯JavaScript聚焦时,禁用键盘快捷键
- 在聚焦后检测到文本输入上的非聚焦
- 在聚焦文本输入的同时使用箭头键滚动(Javascript)
- 在聚焦文本输入时触发文件选择
- JQuery - 将光标放在文本区域的末尾,当光标聚焦时
- 如何使用 Reactjs 选择输入中的所有文本,当它聚焦时
- 是否可以将光标锁定/聚焦到文本区域的最后一行
- 在文本字段中插入文本后聚焦光标
- 如何聚焦文本区域单击主类
- NG-重复和文本区域聚焦
- 通过检测 JavaScript 中的 CTRL+A 键来聚焦文本框
- 当用户使用 jquery 将焦点聚焦到文本区域时显示按钮
- 聚焦文本输入时如何单击行?(反应原生)
- 实时文本聚焦