¿Cómo se configura la posición del cursor en un campo de texto usando jQuery? Tengo un campo de texto con contenido, y quiero que el cursor de los usuarios se coloque en un cierto desplazamiento cuando se centran en el campo. El código debería verse así:
$('#input').focus(function() {
$(this).setCursorPosition(4);
});
¿Cómo sería la implementación de esa función setCursorPosition? Si tuviera un campo de texto con el contenido abcdefg, esta llamada resultaría en la posición del cursor de la siguiente manera: abcd ** | ** efg.
Java tiene una función similar, setCaretPosition. ¿Existe un método similar para javascript?
Actualización: modifiqué el código de CMS para trabajar con jQuery de la siguiente manera:
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)
? Sabes que es exactamente lo mismothis.setSelectionRange
, pero más lento y más difícil de leer, ¿verdad? jQuery no está haciendo literalmente nada por usted aquí.