我遵循以下功能:
这可能吗?
<小时/> 适用于Firefox 5
$('input[type="text"]').live('focus', function () {
this.select();
});
Chrome和IE8只会瞬间选择所有文字
<小时/> 这适用于Chrome浏览器
$('input[type="text"]').live('click', function () {
this.select();
});
Firefox和IE8选择所有文本,但在后续点击时,文本仍保持选中状态。
*种类有效,在文本框有焦点后,单击它会在选择所有文本和能够点击闪烁的插入符号所在的位置之间切换。这可能是可以接受的。
答案 0 :(得分:9)
使用setTimeout
:
$('input[type="text"]').live('focus', function() {
var inp = this;
setTimeout(function() {
inp.select();
}, 1);
});
正在发生的事情是,在您选择文本后,其他一些浏览器事件正在设置选择。因此,等待一毫秒后,您将完成所有浏览器事件,然后选择文本。现在没有什么可以解除它。
答案 1 :(得分:0)
您可能想要添加
event.preventDefault();
return false;
到你的功能(第一个)。这可能会修复其他浏览器。
另外,将event
添加到函数sig:
$('input[type="text"]').live('focus', function (event) {
答案 2 :(得分:0)
你应该记得这样做return false; event.stopPropagation(); event.preventDefault()
:
$('input[type="text"]').live('click', function (event) {
this.select();
event.stopPropagation();
event.preventDefault();
return false;
});
答案 3 :(得分:0)
如果您可以使用jQuery,那么您可以执行类似的操作;
$("#myInputField").focus(function(){
// Select input field contents
this.select();
});
// Add this behavior to all text fields
$("input[type=text]").focus(function(){
// Select field contents
this.select();
});
取自HERE