360 votes

sélection de jQuery entrée tout sur focus

Hé tous. J’utilise ce code pour essayer de sélectionner tout le texte dans le champ lorsqu’un utilisateur se concentre sur le terrain. Ce qui se passe est, elle sélectionne tous pour une seconde, puis ses pas sélectionné et le curseur de la frappe est à gauche où j’ai cliqué sur...

Je veux qu’il tous restent sélectionnés. Toutes les idées ?

Merci beaucoup

517voto

karim79 Points 178055

Essayez d’utiliser au lieu de . Il semble fonctionner pour les événements clés et de la souris (au moins sur Chrome/Mac) :

jQuery

jQuery version 1.7 + :

Voici une démo

69voto

Piskvor Points 46986

Je pense que ce qui se passe est la suivante :

Une solution de contournement appelle peut-être le select() asynchrone, pour qu’il fonctionne complètement après focus() :

61voto

user2072367 Points 151

Je pense que c’est la meilleure solution. À la différence en sélectionnant simplement dans l’événement onclick, cela n’empêche pas sélection/édition de texte avec la souris. Il fonctionne avec les moteurs de rendu majeur y compris IE8.

http://jsfiddle.net/25Mab/9/

40voto

animatedgif Points 181

Il y a quelques décent réponses ici et @user2072367 'est mon préféré, mais il a un résultat inattendu, quand vous vous concentrez via l'onglet plutôt que via un clic. ( résultat inattendu: pour sélectionner le texte normalement après le focus via l'onglet, vous devez cliquer une autre fois )

Ce violon correctifs petit bug et de plus les magasins de $(this) dans une variable pour éviter les doublons DOM sélection. Check it out! (:

Testé dans IE > 8

$('input').on('focus', function() {
    var $this = $(this)
        .one('mouseup.mouseupSelect', function() {
            $this.select();
            return false;
        })
        .one('mousedown', function() {
            // compensate for untriggered 'mouseup' caused by focus via tab
            $this.off('mouseup.mouseupSelect');
        })
        .select();
});

13voto

Nianpeng Points 99

Ce serait faire le travail et éviter le problème que vous pouvez sélectionner n’est plus partie du texte avec la souris.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X