Maison > interface Web > js tutoriel > Positions JQuery / HTML5 Focus et Positeurs du curseur

Positions JQuery / HTML5 Focus et Positeurs du curseur

Lisa Kudrow
Libérer: 2025-02-24 10:49:10
original
976 Les gens l'ont consulté

Ce document fournit des extraits de code et des exemples démontrant comment gérer la mise au point et la position de l'entrée du curseur à l'aide de jQuery et HTML5. Les commentaires et les suggestions sont les bienvenus.

jQuery/HTML5 Input Focus and Cursor Positions

jQuery Entrée Focus

Utilisez la fonction focus() pour définir la mise au point sur un élément d'entrée:

// Set focus on input
$('input[name=firstName]').focus();
Copier après la connexion
Copier après la connexion

Voir ceci en action sur https://www.php.cn/link/3f74a886c7f841699690962c497d4f30

HTML5 Focus d'entrée

HTML5 offre des capacités de mise au point automatique intégrées. Bien que largement pris en charge, notez qu'il peut ne pas fonctionner de manière cohérente sur tous les navigateurs (testé en travaillant dans Chrome et Firefox, mais pas IE9 ou plus).

<input type="text" autofocus>
Copier après la connexion
Copier après la connexion

Voir cet exemple sur https://www.php.cn/link/8bd045c0275185605e58d7fec40ecae6

jQuery set la position du curseur

Cette fonction jQuery définit la position du curseur sur un index de caractères spécifique dans un champ de saisie:

// Set cursor position
$.fn.setCursorPosition = function(pos) {
  this.each(function(index, elem) {
    if (elem.setSelectionRange) {
      elem.setSelectionRange(pos, pos);
    } else if (elem.createTextRange) {
      var range = elem.createTextRange();
      range.collapse(true);
      range.moveEnd('character', pos);
      range.moveStart('character', pos);
      range.select();
    }
  });
  return this;
};
Copier après la connexion
Copier après la connexion

Exemple Utilisation: Définit la position du curseur après le premier caractère.

$('#username').setCursorPosition(1);
Copier après la connexion
Copier après la connexion

Voir cet exemple sur https://www.php.cn/link/5496f40877a2ded20411a2266e86f523

jQuery Sélectionner la plage de texte

Cette fonction jQuery sélectionne automatiquement une plage spécifique de texte (un certain nombre de caractères) dans un champ de saisie:

// Select text range
$.fn.selectRange = function(start, end) {
    return this.each(function() {
        if (this.setSelectionRange) {
            this.focus();
            this.setSelectionRange(start, end);
        } else if (this.createTextRange) {
            var range = this.createTextRange();
            range.collapse(true);
            range.moveEnd('character', end);
            range.moveStart('character', start);
            range.select();
        }
    });
};
Copier après la connexion
Copier après la connexion

Exemple Utilisation: Sélectionne les 5 premiers caractères.

$('#username').selectRange(0, 5);
Copier après la connexion

Voir cet exemple sur https://www.php.cn/link/c7410e5d6aa6b2f78ea7d9267b7908c2

Questions fréquemment posées (FAQ)

Cette section aborde les questions courantes concernant JQuery / HTML5 Focus et positionnement du curseur. Les réponses fournissent des exemples de code concis pour plus de clarté. (Remarque: la section FAQ d'origine avait des incohérences de formatage et des blocs de code qui n'étaient pas correctement formatés en code. Cette version corrige ces problèmes.)

Q: Comment puis-je définir la position du curseur à la fin du champ de saisie à l'aide de jQuery?

var input = $('#inputField');
var len = input.val().length;
input.focus();
input[0].setSelectionRange(len, len);
Copier après la connexion

Q: Comment puis-je utiliser jQuery pour me concentrer sur un champ de saisie lorsqu'un lien est cliqué?

$('#linkID').click(function() {
  $('#inputField').focus();
});
Copier après la connexion

Q: Quelle est la différence entre les événements focus et focusin dans jQuery?

focus est déclenché lorsqu'un élément reçoit une mise au point et ne bouillonne pas. focusin est similaire mais bouillonne le dom.

Q: Comment puis-je déclencher l'événement de mise au point manuellement dans jQuery?

$('#inputField').focus(); // or $('#inputField').trigger('focus');
Copier après la connexion

Q: Comment puis-je détecter quand un champ de saisie perd la focalisation dans jQuery?

// Set focus on input
$('input[name=firstName]').focus();
Copier après la connexion
Copier après la connexion

Q: Comment puis-je empêcher un champ de saisie de perdre la focalisation dans jQuery?

L'utilisation de preventDefault dans un focusout le gestionnaire n'est généralement pas recommandée car elle peut entraîner un comportement inattendu. Envisagez des approches alternatives pour atteindre votre résultat souhaité.

Q: Comment puis-je définir l'accent sur le champ de saisie suivant lorsque la touche Entrée est enfoncée dans jQuery?

<input type="text" autofocus>
Copier après la connexion
Copier après la connexion

Q: Comment puis-je définir la position du curseur à un index spécifique dans un champ de saisie à l'aide de jQuery?

// Set cursor position
$.fn.setCursorPosition = function(pos) {
  this.each(function(index, elem) {
    if (elem.setSelectionRange) {
      elem.setSelectionRange(pos, pos);
    } else if (elem.createTextRange) {
      var range = elem.createTextRange();
      range.collapse(true);
      range.moveEnd('character', pos);
      range.moveStart('character', pos);
      range.select();
    }
  });
  return this;
};
Copier après la connexion
Copier après la connexion

Q: Comment puis-je obtenir la position actuelle du curseur dans un champ de saisie à l'aide de jQuery?

$('#username').setCursorPosition(1);
Copier après la connexion
Copier après la connexion

Q: Comment puis-je déplacer le curseur au début d'un champ de saisie à l'aide de jQuery?

// Select text range
$.fn.selectRange = function(start, end) {
    return this.each(function() {
        if (this.setSelectionRange) {
            this.focus();
            this.setSelectionRange(start, end);
        } else if (this.createTextRange) {
            var range = this.createTextRange();
            range.collapse(true);
            range.moveEnd('character', end);
            range.moveStart('character', start);
            range.select();
        }
    });
};
Copier après la connexion
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal