1

フォーカスを取得したときにテキスト ボックスの値を選択したいので、Site.Master に次の JavaScript を追加しました。

$("input:text").focus(function(){ $(this).select(); }

これ (jsfiddle http://jsfiddle.net/8xVck/で試してください) は IE と Firefox でうまく機能しますが、何らかの理由で Chrome では、テキスト ボックスをクリックすると、すべてのテキストを選択してから一瞬表示されます。選択を解除し、クリックした位置にカーソルを置きます。

これは、他のブラウザーではclickイベントがイベントの前に発生するのに対しfocus、Chrome ではその逆のためだと思いますか?

Chrome で私の目標を達成する方法を考えられる人はいますか?

4

4 に答える 4

0

これは、他のブラウザーではclickイベントがイベントの前に発生するのに対しfocus、Chrome ではその逆のためだと思いますか?

仮定しないで、テストしてください。(ところで、Firefox でも同じことが起こります。)

次を使用して問題を回避できますsetTimeout: Fiddle

$("input:text").focus(function() {
    var $this = $(this);
    setTimeout(function(){
        $this.select()
    }, 0);
});
于 2013-08-08T09:22:04.193 に答える
0

Chrome が反応するための短い期間が大いに役立ちます: http://jsfiddle.net/8xVck/2/

$(function(){
    $("input:text").focus(function(){ 
        var that = $(this);
        window.setTimeout(function(){
            that.select();
        }, 13);
    });
});
于 2013-08-08T09:22:32.643 に答える