2009-11-25 6 views
2

Il existe de nombreuses informations sur la façon de placer le curseur exactement à l'endroit souhaité dans une zone de texte. Rien de tout cela ne semble fonctionner pour un champ <input type="text">.Emplacement du curseur dans les zones de saisie de texte

Fondamentalement, lorsque la page se charge, j'ai un champ de saisie avec du texte, et il est concentré. Le problème est que le curseur est à la fin du texte pré-écrit. J'ai besoin d'être au début. Alternativement, cacher le curseur serait bien, aussi. Encore mieux, en fait, mais je ne sais pas si c'est possible.

Idéalement, cela devrait être fait dans jQuery, mais JS normal est aussi bien.

Merci!
Mala

Répondre

3

Cela peut être fait en utilisant les attributs de sélection:

$('#my-element-id').attr({ 
    selectionStart : 0, 
    selectionEnd : 0 
}); 
+0

Pourquoi downvote? –

2

Je ne sais pas ce que jQuery ne sous le capot pour la réponse de la Jordanie, mais celui-ci pourrait être un peu plus cross-browser:

function setSelectionRange(inputEl, selStart, selEnd) { 
    if (inputEl.setSelectionRange) { 
     inputEl.focus(); 
     inputEl.setSelectionRange(selStart, selEnd); 
    } else if (inputEl.createTextRange) { 
     var range = inputEl.createTextRange(); 
     range.collapse(true); 
     range.moveEnd('character', selEnd); 
     range.moveStart('character', selStart); 
     range.select(); 
    } 
} 

Et si vous le couplage avec jQuery, de l'utiliser comme:

$(document).ready(function() { 
    $('input[type="text"]').each(function() { 
     setSelectionRange(this, 0, 0); 
    }); 
}); 

BTW, ce code est complètement non testé.

EDIT: code mis à jour après que je vous ai vu recherchez des éléments d'entrée ...

Questions connexes