我使用这段代码尝试在用户聚焦于字段时选择字段中的所有文本。发生的事情是,它选择了所有的一秒钟,然后它被取消选择,输入光标留在我点击的地方…

$("input[type=text]").focus(function() {
   $(this).select();
});

我希望一切都能被选中。


当前回答

试着用点击代替聚焦。它似乎对鼠标和键事件都有效(至少在Chrome/Mac上):

jQuery < 1.7版本:

$("input[type='text']").click(function () {
   $(this).select();
});

jQuery 1.7+版本:

$("input[type='text']").on("click", function () {
   $(this).select();
});

这是一个演示

其他回答

var timeOutSelect;
$("input[type=text]").focus(function() { 
        var save_this = $(this);
        clearTimeout(timeOutSelect);
        timeOutSelect = window.setTimeout (function(){ 
                save_this.select(); 
        }, 100);
});

如果您在两个输入之间快速切换,请使用clearTimeout来获得更多的安全性。 清除旧的超时…

我使用FF 16.0.2和jquery 1.8.3,所有的代码在答案不工作。 我使用这样的代码工作。

$("input[type=text]").focus().select();

与原生JavaScript select()一起工作很好。

$("input[type=text]").focus(function(event) {
   event.currentTarget.select();
});

或者概括地说:

$("input[type=text]")[0].select()
<script>$.ready( $("input[type=text]").attr("onclick" , "this.select()"));<script>

试着用点击代替聚焦。它似乎对鼠标和键事件都有效(至少在Chrome/Mac上):

jQuery < 1.7版本:

$("input[type='text']").click(function () {
   $(this).select();
});

jQuery 1.7+版本:

$("input[type='text']").on("click", function () {
   $(this).select();
});

这是一个演示