Comment définir la position du curseur dans un champ de texte à l'aide de jQuery? J'ai un champ de texte avec du contenu et je veux que le curseur des utilisateurs soit positionné à un certain décalage lorsqu'ils se concentrent sur le champ. Le code devrait ressembler à ceci:
$('#input').focus(function() {
$(this).setCursorPosition(4);
});
À quoi ressemblerait l'implémentation de cette fonction setCursorPosition? Si vous aviez un champ de texte avec le contenu abcdefg, cet appel entraînerait le positionnement du curseur comme suit: abcd ** | ** efg.
Java a une fonction similaire, setCaretPosition. Existe-t-il une méthode similaire pour javascript?
Mise à jour: j'ai modifié le code de CMS pour fonctionner avec jQuery comme suit:
new function($) {
$.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();
}
}
}(jQuery);
$(this).get(0).setSelectionRange)
? Vous savez que c'est exactement la même chose quethis.setSelectionRange
, plus lent et plus difficile à lire, non? jQuery ne fait littéralement rien pour vous ici.