2011-07-13 10 views
5

mam pola tekstowego:Jak przenieść kursor na początek pola tekstowego z tekstem?

<input type="text" name="url" id="url-input" /> 

i ten kod:

var inputText = "Hello World"; 
$(document).ready(function() { 
    $("#url-input").focus(); 
    $("#url-input").val(inputText); 
}); 

Jak to jest, kursor jest wyświetlany na końcu pola tekstowego po słowa „Hello World” (nr sprawy w jakiej kolejności dodam fokus lub zmieniam wartość). Jak mogę przenieść go na przód?

Dzięki

EDIT - oto jsFiddle: http://jsfiddle.net/dmRND/

Odpowiedz

7

W porządnych przeglądarek internetowych, masz dostęp do selectionStart i selectionEnd właściwości, które stanowią wybór. Gdy są one zarówno 0, to sprowadza się do braku wyboru i karetki na początku:

$("#url-input").prop('selectionStart', 0) 
       .prop('selectionEnd', 0); 

http://jsfiddle.net/efek3/

Inną rzeczą jest jQuery łańcuchowym: $(...).func1().func2(), więc trzeba tylko raz selektora.

Jeszcze inną rzeczą jQuery jest to, że większość funkcji wsparcia obiektów jako parametr więc można również zrobić:

$("#url-input").prop({ selectionStart: 0, 
         selectionEnd: 0 }); 
+0

Dziękuję, to świetnie. Czy istnieje obejście dla IE8-? –

+0

@Nick Brunt: To pamięta o tej odpowiedzi: http://stackoverflow.com/questions/263743/how-to-get-cursor-position-in-textarea/3373056#3373056. – pimvdb

Powiązane problemy