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

Positions JQuery / HTML5 Focus et Positeurs du curseur

Lisa Kudrow
Lisa Kudroworiginal
2025-02-24 10:49:10978parcourir

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:

<code class="language-javascript">// Set focus on input
$('input[name=firstName]').focus();</code>

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).

<code class="language-html"><input type="text" autofocus></code>

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:

<code class="language-javascript">// 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;
};</code>

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

<code class="language-javascript">$('#username').setCursorPosition(1);</code>

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:

<code class="language-javascript">// 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();
        }
    });
};</code>

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

<code class="language-javascript">$('#username').selectRange(0, 5);</code>

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?

<code class="language-javascript">var input = $('#inputField');
var len = input.val().length;
input.focus();
input[0].setSelectionRange(len, len);</code>

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

<code class="language-javascript">$('#linkID').click(function() {
  $('#inputField').focus();
});</code>

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?

<code class="language-javascript">$('#inputField').focus(); // or $('#inputField').trigger('focus');</code>

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

<code class="language-javascript">// Set focus on input
$('input[name=firstName]').focus();</code>

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?

<code class="language-html"><input type="text" autofocus></code>

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

<code class="language-javascript">// 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;
};</code>

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

<code class="language-javascript">$('#username').setCursorPosition(1);</code>

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

<code class="language-javascript">// 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();
        }
    });
};</code>

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:
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