我正在尝试使用jQuery在只读输入框中选择文本,这就是我所拥有的:
$('input').focus(function(){
$(this).select();
})
Run Code Online (Sandbox Code Playgroud)
然而,当我点击输入时,它会快速选择所有文本,它会"闪烁",然后它会恢复到未被选中的正常状态.
围绕这个想法吗?
小智 14
我使用下面的代码工作了.我的chrome版本:Version 24.0.1312.52
$("#inputid").on("focus",function(e){
$(this).select();
});
$("#inputid").on("mouseup",function(e){
return false;
});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 ...
小智 5
这两种技术的组合对我有用,虽然我的盒子不是只读的.普通的select()可以立即在Firefox中运行.但是,在Safari中,鼠标和事件的排序会导致它在mouseup上再次取消选择.我附加了一个mouseup事件,它在mouseup应该完成干扰之后在延迟的计时器上启动一个select(如果文本仍然是要替换的默认文本).
例:
$('#your_selector').focus(function() {
$(this).select();
}).mouseup(function() {
if ($(this).val() === 'Enter search terms here'){
var _self = this;
setTimeout(function(){ _self.select()},30)
}
});
Run Code Online (Sandbox Code Playgroud)
问题在于输入框是只读的(正如您在问题中提到的)。
(这不是 jQuery 或 javascript 问题)
IE、FF、Opera都没有问题。但 Chrome 和 Safari 却出现了你提到的问题。
看起来像是一个不同的实现,我不确定你可以解决这个问题..
演示展示(在打开控制台的情况下检查所有浏览器)
http://jsfiddle.net/gaby/N9qzq/3/