web-dev-qa-db-de.com

setzen Sie den Cursor am Ende des Texteingabewerts

Derzeit habe ich also ein Texteingabefeld mit einem Wert, der auch automatisch fokussiert ist.

Beim Laden der Seite wird der Wert ausgewählt/hervorgehoben. Gibt es eine Möglichkeit, den Cursor an das Ende des Werttextes zu setzen, anstatt ihn in Javascript oder CSS hervorzuheben?

Hier ist eine js-Geige, in der der Wert des autofokussierten Textes hervorgehoben wird: http://jsfiddle.net/TaGL5/

Hier ist der HTML-Code: <input type="text" value="value text" autofocus />

27
Django Johnson

Das funktioniert für mich

<input type="text" autofocus value="value text" onfocus="this.value = this.value;"/>

42

Aktualisieren Sie auf @ harshas Antwort: Ich habe festgestellt, dass , Um die Lösung mit Firefox funktionieren zu lassen

<input type="text" autofocus value="value text" onfocus="var temp_value=this.value; this.value=''; this.value=temp_value" />

21
J_z

Verwenden Sie dazu Jquery:

$(function() {
      var input = $("#txt1");
    var len = input.val().length;
    input[0].focus();
    input[0].setSelectionRange(len, len);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

<input type="text" id="txt1" value="Lorem" style="width:400px;" />

Einige Browser unterstützen jedoch keine enter code here-Eigenschaft. Verwenden Sie in diesem Fall Folgendes:

$(document).ready(function(){
    $("#search").focus(function(){
        if (this.setSelectionRange)
        {
        var len = $(this).val().length;
        this.setSelectionRange(len, len);
        }
        else
        {
        $(this).val($(this).val());
        }
   
});

$("#search").focus();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<input id="search" type="text" value="mycurrtext" size="30" name="search" />

Diese Frage existiert bereits bei stackoverflow:

Referenz1

Referenz2

5
Ishan Jain

Sie können diesen Parameter zu Ihrem Texteingabefeld hinzufügen:

onmouseover="this.setSelectionRange(this.value.length,this.value.length);"
onfocus="this.setSelectionRange(this.value.length,this.value.length);"

NB: Funktioniert gut unter Chrom im Jahr 2017.

1
user4723924

Nutzen Sie diese schöne Arbeit für mich ...

<input type="text" name="txt" value="value text" autofocus="" onfocus="this.setSelectionRange(this.value.length,this.value.length);">

ODER fügen Sie diese Zeile Ihrem Eingabeelement hinzu

onfocus="this.setSelectionRange(this.value.length,this.value.length);"
0
Obaidul Haque