Bonjour,

Sur un formulaire de saisie, j'ai deux champs de type text formatés par un mask jquery

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Heure de départ <input type="text" id="heure_depart" name="heure_depart" value=""/>
Heure de retour <input type="text" id="heure_retour" name="heure_retour" value=""/>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
//Mask heure
$("#heure_depart,#heure_retour").mask("99:99",{placeholder:"-"});
J'essaye de passer automatiquement du champs id="heure_depart" au champs id="heure_retour" lorsque la saisie est complète sur le premier champ, par exemple 12:50.

L'internaute ne saisie donc que 1250, les deux points sont ajoutés automatiquement par le mask.

Le code que j'utilise et qui ne déclenche aucune action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$("#heure_depart").bind('keyup', function() {
    if($(this).val().length == 4 ) {
         $("#heure_retour").focus();
    }
});
Si j'indique comme valeur 4 à la place de 5 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if($("#heure_depart").val().length == 5 )
Le changement se fait dès la saisie du premier caractère.

Après d'autres tests, si je désactive le mask, cela fonctionne parfaitement, donc, c'est le mask et certainement les caractères qu'il ajoute dans le champ qui pose problème, mais je souhaite garder ce mask de saisie.

Donc, ce qu'il faudrait tester, c'est que la longueur de la chaine de caractère soit de 4 et compter uniquement les chiffres, mais là, cela me dépasse un peu

Auriez vous une idée pour contourner ce problème ?

Merci d'avance !

Patrice