2012-07-09 17 views
6

Obecnie chcę ustawić ostrość pierwszego elementu wejściowego bez wybierania tekstu wartości zadanej wewnątrz elementu wejściowego. Jak mogę ustawić element wejściowy, a następnie odznaczyć tekst w nim? Moje bieżące fokus jQuery wygląda następująco.Jak ustawić ostrość i odznaczyć tekst wewnątrz niego?

$(document).ready(function() { 
    $("input[name='title']").focus(); 
}); 
+1

http://stackoverflow.com/questions/794583/deselect-contents-of-a-textbox-with-javascript –

Odpowiedz

7
$(document).ready(function() { 
    $("input[name='title']").focus(); 
    $("input[name='title']").val($("input[name='title']").val()); 
}); 
6

Można użyć selectionStart i selectionEnd właściwości:

$(document).ready(function() { 
    $("input[name='title']").each(function(){ 
     this.focus(); 
     this.selectionEnd = this.selectionStart; 
    }); 
}); 
0
$("input[name='title']").focus(function() 
{ 
    var elem = $(this); 

    elem.val(elem.val()); 
}); 
+0

to również przyzwyczajenie praca, im próbuje to wszystko w Chrome atm – Solo

-2

Jego nie genialni kupić może pomóc

JSFiddle

podstawowe: Zastąp to, co już jest ...

$(document).ready(function() { 
    $('#t1').focus(); 
    $('#t1').val($('#t1').val());      
}); ​ 
2

Jest to oparte na powyższej odpowiedzi Danilo Valente. Okazało się, że na Chrome musiałem użyć drobny opóźnienie przed wywołaniem this.selectionEnd = this.selectionStart, inaczej tekst wejściowy będzie pozostawać wybrany:

Działa to dla mnie na Chrome, Firefox, Safari i IE (testowane IE 10)

$("input").focus(function() { 
    var input = this; 
    setTimeout(function() { input.selectionStart = input.selectionEnd; }, 1); 
}); 

Oto demo: http://jsfiddle.net/rangfu/300ah0ax/2/

Powiązane problemy