Maison >interface Web >js tutoriel >Positions JQuery / HTML5 Focus et Positeurs du curseur
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 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!