28 votes

Focus champ de saisie avec JQuery sans sélectionner le texte de la valeur actuelle

 $("#myinputfield").focus();
 

Faire cela sur un champ de saisie avec sa valeur déjà définie entraîne la sélection de la valeur actuelle. Comment puis-je concentrer le champ sans sélectionner le texte?

27voto

Ben Points 3374

J'ai cherché un peu et j'ai découvert que vous devriez redéfinir votre valeur dans le champ souhaité après qu'elle se soit concentrée.

26voto

bensie Points 4255

Que diriez-vous de quelque chose comme ça où vous définissez la valeur du champ de saisie sur lui-même après l'avoir focalisé?

 $("#myinputfield").focus().val($("#myinputfield").val());
 

6voto

manish_s Points 1045

D'autres réponses suggèrent de définir la valeur du champ de saisie sur lui-même après l'avoir focalisé. Si dans Firefox, le curseur apparaît au début de l'entrée et vous le voulez à la fin, alors une légère modification est requise. Vous devrez d'abord définir la valeur comme vide, puis la définir sur la valeur précédente.

 var value = $("#myinputfield").val();
$("#myinputfield").focus().val('').val(value);
 

3voto

cwallenpoole Points 34940

Avez-vous essayé cela?

 var txt = $("#myinputfield").val();
$("#myinputfield").focus();
$("#myinputfield").val( txt );
 

0voto

John Smith Points 47
function focusField(id){
    var inputField = document.getElementById(id);
    if (inputField != null && inputField.value.length != 0){
        if (inputField.createTextRange){
            var FieldRange = inputField.createTextRange();
            FieldRange.moveStart('character',inputField.value.length);
            FieldRange.collapse();
            FieldRange.select();
        }else if (inputField.selectionStart || inputField.selectionStart == '0') {
            var elemLen = inputField.value.length;
            inputField.selectionStart = elemLen;
            inputField.selectionEnd = elemLen;
            inputField.focus();
        }
    }else{
        inputField.focus();
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: