Change focus sur texbox quand maxlenght atteint

cs_drumy Messages postés 3 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 4 septembre 2008 - 4 sept. 2008 à 20:42
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 - 4 sept. 2008 à 23:30
Bonjour à tous,
Dans une page asp.net je voudrais forcer le changement de focus d'une textbox à une autre lorsque la longueur maxlenght est atteinte.

Je pensais utiliser ceci:

protected void tb1_TextChanged(object sender, EventArgs e)
        {
            if (tb1.MaxLength =tb1.Text.Length)
                tb2.Focus();
        }

Mais l'événément textchange n'est exécuter que lorsque je retourne vers le serveur via <enter> ou autre .

Dans mes recherches j'en déduis que je devrais faire cela directement dans le code html via javascript mais je ne connais pas trop.
Quelqu'un peut-il m'aider ?
D'avance merci.

Drumy

1 réponse

ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
4 sept. 2008 à 23:30
Bonjour,

Voici un exemple rudimentaire, sur deux textbox, à adapter...

function longtext(){
    var t1=document.getElementById("TextBox1")
    var t2=document.getElementById("TextBox2")
    if (t1.value.length==t1.maxLength){
    t2.focus()
    }
    }

Dans ta textbox1 asp, tu peux alors ajouter : onkeyup="longtext()".
Dans VS, tu auras un avertissement (mais ça fonctionnera tout de même). Tu peux sinon l'ajouter dans ton code c# à l'aide de attributes.add.
Note bien entendu qu'utiliser l'id de base des TextBox dans ta fonction js ne peut fonctionner que si les id de tes textbox ne sont pas modifiés selon la hiérarchie des contrôles.

GGtry
0
Rejoignez-nous