我想选择一个只读输入框中的文本,使用jQuery的文字,这是我有:选择焦点
$('input').focus(function(){
$(this).select();
})
当我输入点击然而,它迅速选择所有文本时,它会“闪烁”,然后返回到未选中的正常状态。
有关于此的任何想法?
我想选择一个只读输入框中的文本,使用jQuery的文字,这是我有:选择焦点
$('input').focus(function(){
$(this).select();
})
当我输入点击然而,它迅速选择所有文本时,它会“闪烁”,然后返回到未选中的正常状态。
有关于此的任何想法?
问题在于输入框是只读的(,正如您在问题中提到的那样)。
(它不是一个jQuery或JavaScript问题)
IE,FF和Opera也没问题。但Chrome和Safari浏览器表现出你所提到的问题..
貌似不同的实现,我不知道你可以工作,围绕..
演示来展示(检查在所有浏览器与控制台开放)
http://jsfiddle.net/gaby/N9qzq/3/
谢谢..将不得不看一个不同的方法,将无法在Chrome中工作。 – dzm
由于人们都在提,可以使用CSS来模拟你的选择不一致?当输入接收到焦点时,应用CSS color
和background-color
,使其看起来像被选中。
绝对不是。重点是让用户方便地复制/粘贴字段中的文本。 –
这里发生了一些奇怪的事情。 focus
发生在mousedown上,但光标放置发生在click
(即mousedown
后跟mouseup
)。当放置光标时,任何选择都会消失。
所以,你最有可能想保持你的focus
事件(Tab键和trigger
荷兰国际集团的目的),但还添加了click
或mouseup
处理程序做实际的选择在点击的情况下。
$('input[type="text"]').focus(function() {
$(this).select();
}).click(function() {
if ($(this).val() === 'Your default value')
{
$(this).select();
}
});
的if
的存在使得一旦用户定制在输入文本,他们可以点击周围没有选择文本。尽管这并不适用于readonly
文本输入,因此可以安全地删除它。
编辑: 代码似乎最多不一致,所以这可能不是解决方案。
基于什么加比在他们的帖子中写道,这种解决方案似乎是为我工作:
$('input').focus(function(){
var _self = this;
setTimeout(function(){ console.log(_self.select())},100)
})
A的两种技术结合工作对我来说,虽然我的箱子是不是只读的。正常的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)
}
});
我得到它的工作使用下面的代码。我的Chrome版本:Version 24.0.1312.52
$("#inputid").on("focus",function(e){
$(this).select();
});
$("#inputid").on("mouseup",function(e){
return false;
});
希望这有助于...
这是最干净的解决方案,但您可能想使用'e.preventDefault()'而不是'return false'。 – iono
<input onClick="this.select()" value="Blabla und Blublu" type="text" />
应工作
此功能与问题中的功能相同 - 它会有同样的问题。 – Izkata
事件不同:单击而不是焦点。见http://stackoverflow.com/questions/3150275/jquery-input-select-all-on-focus –
我对浏览器的这个问题进行测试。 Google有这个问题,我觉得Opera也是。 Firefox,IE ok。我通过this.select()解决了onclick和onfocus问题。
这似乎对我很好,虽然它取决于我点击的位置。点击文字内容的结尾就可以正常工作,点击中间就会第一次描述你的眨眼,然后第二次工作。 –
我在jQuery 1.4.3中测试了上面的代码,它工作正常! –