Bonjour,
Sur un formulaire de saisie, j'ai deux champs de type text formatés par un mask jquery
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=""/> |
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 :
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 :
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
Partager