par
Ryle » 24 janv. 2007, 12:09
Au lieu de faire un (longueur-1), execute la fonction sur le onKeyUp, ca sera plus simple
Et comme tu as une longueur définie dans ton champ, tu devrais coller un maxlength (pour limiter la saisie et éviter un numéro de mois de 3 chiffres

) et l'utiliser comme longueur de ta fonction.
Du coup je passerais l'objet this à ta fonction pour récupérer ces deux valeurs et plus s'en soucier ensuite
<input onKeyUp="changeInput(this, 'input2');" ... />
function changeInput(obj, id_suivant) {
if(obj.value.length==obj.maxlength){
document.getElementById(id_suivant).focus();
}
}
En fait, en récupérant l'index du champ dans le formulaire, tu ne serais même pas obligé de mettre d'id à tes champs, il te suffirait d'augmenter l'index pour passer au suivant
Pour le select() c'est juste pour selectionné le texte contenu dans le champ lors du focus. Ca permet de supprimer le contenu dès la frappe de la nouvelle valeur, sans avoir à faire de suppr ou de delete.
Mes utilisateurs apprécient car ils vont généralement plus vite de ressaisir la chaine (quand il s'agit d'une date) que de la corriger (en se positionnant sur le bon caractère, ou en supprimant ceux erronés, etc.)

Au lieu de faire un (longueur-1), execute la fonction sur le onKeyUp, ca sera plus simple :)
Et comme tu as une longueur définie dans ton champ, tu devrais coller un maxlength (pour limiter la saisie et éviter un numéro de mois de 3 chiffres ;)) et l'utiliser comme longueur de ta fonction.
Du coup je passerais l'objet this à ta fonction pour récupérer ces deux valeurs et plus s'en soucier ensuite :)
[php]<input onKeyUp="changeInput(this, 'input2');" ... />
function changeInput(obj, id_suivant) {
if(obj.value.length==obj.maxlength){
document.getElementById(id_suivant).focus();
}
}[/php]
En fait, en récupérant l'index du champ dans le formulaire, tu ne serais même pas obligé de mettre d'id à tes champs, il te suffirait d'augmenter l'index pour passer au suivant :)
Pour le select() c'est juste pour selectionné le texte contenu dans le champ lors du focus. Ca permet de supprimer le contenu dès la frappe de la nouvelle valeur, sans avoir à faire de suppr ou de delete.
Mes utilisateurs apprécient car ils vont généralement plus vite de ressaisir la chaine (quand il s'agit d'une date) que de la corriger (en se positionnant sur le bon caractère, ou en supprimant ceux erronés, etc.) ;)