7

要素にフォーカスを当てたときに、すべてのテキストを選択したいと考えています。

使った

$('.class-focusin').focusin(function(e) {
    $(this).select();
});

しかし、それは私が望む完璧な動作ではありません。2 つの文字の間をクリックすると、入力値が選択されず、中央にカーソルが表示されます。Chrome ブラウザーの URL バーの動作が必要です。クリックすると、カーソルが値の選択に置き換えられます。

このフィドルで私の問題を自由にテストしてください: http://jsfiddle.net/XS6s2/8/

テキストが選択されたらカーソルを受け取ることができるようにしたい。以下の選択された回答は、間違いなく私が望んでいたものです。ありがとう

4

5 に答える 5

2

テキストが選択されているかどうかを確認する変数を使用できます。

http://jsfiddle.net/jonigiuro/XS6s2/21/

var has_focus = false;
$('.class-focusin').click(function(e) {
    if(!has_focus) {
        $(this).select();
        has_focus = true;
    }
 });

$('.class-focusin').blur(function(e) {
   has_focus = false; 
});
于 2013-07-18T07:37:17.253 に答える
1

ブラウザーが要素にフォーカスを与えるのを待ってから、選択を行う必要があると思います。

$('.class-focusin').focus(function(e) { 
    var $elem = $(this);
    setTimeout(function() {
    $elem.select();
    }, 1);
 });

うん。または、代わりに単にクリック イベントにバインドします。

$('.class-focusin').click(function(e) { 
    $(this).select();
 });
于 2013-07-18T07:36:18.467 に答える
0

focusin の代わりに click を使用してみてください。

$('.class-focusin').click(function(e) {
    $(this).select();
});

デモ

さよなら!

于 2013-07-18T07:37:10.487 に答える
0

ワーキングデモhttp://jsfiddle.net/cse_tushar/XS6s2/22/

$(document).ready(function () {
    $('.class-focusin').click(function (e) {

        $(this).select();

    });
});
于 2013-07-18T07:37:11.173 に答える
0

Select all the text in a input, focusinの直接の複製です。

$(".class-focusin").on("focus",function(e){
    $(this).select();
});

$(".class-focusin").on("mouseup",function(e){
    e.preventDefault();
});

http://jsfiddle.net/XS6s2/31/

于 2013-07-18T07:47:38.840 に答える