Maison >interface Web >js tutoriel >Comment puis-je définir la position du curseur dans une zone de texte jQuery ?
Défi :
Besoin d'une méthode pour définir la position du curseur dans un texte zone en utilisant jQuery. Le comportement souhaité est de positionner le curseur à un décalage spécifique lorsque le champ est focalisé.
Solution jQuery :
$.fn.setCursorPosition = function(pos) { if (this.setSelectionRange) { this.setSelectionRange(pos, pos); } else if (this.createTextRange) { var range = this.createTextRange(); range.collapse(true); if (pos < 0) { pos = $(this).val().length + pos; } range.moveEnd("character", pos); range.moveStart("character", pos); range.select(); } };
Utilisation :
$('#input').focus(function() { $(this).setCursorPosition(4); });
Cela positionnerait le curseur après le quatrième caractère du texte champ.
Solution alternative :
$.fn.selectRange = function(start, end) { if (end === undefined) { end = start; } return this.each(function() { if ("selectionStart" in this) { this.selectionStart = start; this.selectionEnd = end; } else if (this.setSelectionRange) { 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(); } }); };
Cela permet une sélection de texte plus polyvalente, y compris la sélection d'une plage de caractères :
$('#elem').selectRange(3, 5); // select a range of text $('#elem').selectRange(3); // set cursor position
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!