Come si imposta la posizione del cursore in un campo di testo usando jQuery? Ho un campo di testo con contenuti e voglio che il cursore degli utenti sia posizionato su un certo offset quando si concentrano sul campo. Il codice dovrebbe apparire in questo modo:
$('#input').focus(function() {
$(this).setCursorPosition(4);
});
Come sarebbe l'implementazione di quella funzione setCursorPosition? Se avessi un campo di testo con il contenuto abcdefg, questa chiamata comporterebbe il posizionamento del cursore come segue: abcd ** | ** efg.
Java ha una funzione simile, setCaretPosition. Esiste un metodo simile per javascript?
Aggiornamento: ho modificato il codice CMS per funzionare con jQuery come segue:
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)
? Sai che è esattamente lo stesso dithis.setSelectionRange
, solo più lento e più difficile da leggere, giusto? jQuery non sta facendo letteralmente niente per te qui.