web-dev-qa-db-fra.com

place le curseur à la fin de la valeur de saisie de texte

Donc, actuellement, j'ai un champ de saisie de texte avec une valeur qui est également à mise au point automatique.

Au chargement de la page, la valeur est sélectionnée/mise en surbrillance. Est-il possible de placer le curseur à la fin du texte de valeur au lieu de le surligner en javascript ou CSS?

Voici un violon js où la valeur du texte autofocused est mise en évidence: http://jsfiddle.net/TaGL5/

Voici le code HTML: <input type="text" value="value text" autofocus />

27
Django Johnson

Ça marche pour moi

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

42
Harsha Venkatram

Mise à niveau vers la réponse de @ harsha: j'ai constaté que, pour que la solution fonctionne avec Firefox, Nous avons besoin d'une valeur de réinitialisation temporaire sur "valeur non équivalente", puis la réinitialiser.

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

21
J_z

Utilisez Jquery pour cela:

$(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;" />

Mais certains navigateurs ne supportent pas la propriété enter code here, auquel cas utilisez ceci:

$(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" />

Cette question existe déjà sur stackoverflow:

Référence1

Référence2

5
Ishan Jain

Vous pouvez ajouter ce paramètre à votre champ de saisie de texte:

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

NB: Fonctionne bien sous Chrome en 2017.

1
user4723924

Utilisez ceci, c'est du beau travail pour moi ...

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

OU ajouter cette ligne à votre élément d'entrée

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