Maison >interface Web >js tutoriel >Comment placer de manière fiable le curseur à la fin d'un élément de saisie de texte en JavaScript ?

Comment placer de manière fiable le curseur à la fin d'un élément de saisie de texte en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-30 06:03:11881parcourir

How to Reliably Place the Cursor at the End of a Text Input Element in JavaScript?

Placer le curseur à la fin d'un élément de saisie de texte en JavaScript

Placer le curseur à la fin d'un élément de saisie de texte via JavaScript est une méthode simple tâche, en particulier une fois que le focus est défini sur l'élément. Explorons l'approche la plus efficace et la plus simple :

L'extrait de code suivant fournit une solution simple mais efficace :

this.selectionStart = this.selectionEnd = this.value.length;

Cette ligne calcule la longueur de la valeur d'entrée et définit à la fois le début et terminer les curseurs à cette position. Cette méthode fonctionne dans la plupart des principaux navigateurs.

Cependant, certains navigateurs présentent des bizarreries qui nécessitent une solution plus complète :

setTimeout(function(){ that.selectionStart = that.selectionEnd = 10000; }, 0);

Dans cet extrait de code, un setTimeout() est utilisé pour répondre aux problèmes potentiels. incohérences du navigateur. Il définit la position du curseur sur un nombre arbitrairement grand (par exemple, 10 000), garantissant qu'il se situe au-delà de la fin du texte saisi, en le plaçant essentiellement à la fin.

De plus, vous pouvez utiliser jQuery pour définir la auditeur ciblé :

$('#el').focus(function(){
  var that = this;
  setTimeout(function(){ that.selectionStart = that.selectionEnd = 10000; }, 0);
});

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