我使用这段代码尝试在用户聚焦于字段时选择字段中的所有文本。发生的事情是,它选择了所有的一秒钟,然后它被取消选择,输入光标留在我点击的地方…
$("input[type=text]").focus(function() {
$(this).select();
});
我希望一切都能被选中。
我使用这段代码尝试在用户聚焦于字段时选择字段中的所有文本。发生的事情是,它选择了所有的一秒钟,然后它被取消选择,输入光标留在我点击的地方…
$("input[type=text]").focus(function() {
$(this).select();
});
我希望一切都能被选中。
当前回答
我认为情况是这样的:
focus()
UI tasks related to pre-focus
callbacks
select()
UI tasks related to focus (which unselect again)
一个变通方法可能是异步调用select(),这样它就可以在focus()之后完全运行:
$("input[type=text]").focus(function() {
var save_this = $(this);
window.setTimeout (function(){
save_this.select();
},100);
});
其他回答
我使用FF 16.0.2和jquery 1.8.3,所有的代码在答案不工作。 我使用这样的代码工作。
$("input[type=text]").focus().select();
我认为这是更好的解决办法。不像在onclick事件中简单地选择,它不阻止用鼠标选择/编辑文本。它适用于包括IE8在内的主要渲染引擎。
$('input').on('focus', function (e) {
$(this)
.one('mouseup', function () {
$(this).select();
return false;
})
.select();
});
http://jsfiddle.net/25Mab/9/
试着用点击代替聚焦。它似乎对鼠标和键事件都有效(至少在Chrome/Mac上):
jQuery < 1.7版本:
$("input[type='text']").click(function () {
$(this).select();
});
jQuery 1.7+版本:
$("input[type='text']").on("click", function () {
$(this).select();
});
这是一个演示
或者你可以使用<input onclick="select()“>完美。
<script>$.ready( $("input[type=text]").attr("onclick" , "this.select()"));<script>