Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1742 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [javascript] passage de zone à zone [résolu mais moche]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[javascript] passage de zone à zone [résolu mais moche]

n°1413989
trmassoud
Posté le 26-07-2006 à 16:28:32  profilanswer
 

Salut,
 
Bon j'ai cherché sur google et sur le forum mais j'ai pas trouvé de réponse.
 
Je souhaite lorsque l'utilisateur de la page rempli le formulaire, que lorsqu'il a rempli completement la zone, passer à la zone suivante.
 
Pour faire ça, j'ai modifié une fct js trouvé sur le net.
Je veux que cette fonction soit la plus globale possible, c'est à dire que je n'ai pas à spécifier la zone suivante où le focus doit aller.
 
La fonction fait bien son boulot sauf lorsqu'il y a une zone du formulaire pas visible.
Dans ce cas, le focus est fait dessus cette zone et ça ne fonctionne pas (logique).
 
Je pensais tester la visiblité de ma zone avant de faire le focus de manière à écarter ce cas de figure.
Le problème c'est que le style.display est au niveau du "td" et dc je n'arrive pas à récupérer l'état visible ou invisible de la zone lors du parcours des zones dans le js.
 

Code :
  1. <html>
  2.   <head>
  3. <script language="javascript">
  4. function sautTabInput(InputCourant,NomFormulaire)
  5. {
  6.   if (InputCourant.value.length > InputCourant.size - 1)
  7.   {
  8.     var f = document.getElementById(NomFormulaire);
  9.    
  10.     if(f)
  11.     {
  12.       var champs = f.getElementsByTagName("input" );
  13.    
  14.       for(var i=0, n=champs.length; i<n; i++)
  15.       {
  16.         if (champs[i].name == InputCourant.name)
  17.         {
  18.           for (var j=1;i+j<n;j++)
  19.           {
  20.             alert ('champs[i+j].name : '  + champs[i+j].name);
  21.             alert ('champs[i+j].style.display : ' + champs[i+j].style.display);
  22.             if (champs[i+j].style != 'display:none' && champs[i+j].type == 'text')
  23.             {
  24.               champs[i+j].focus();
  25.               break;
  26.             }
  27.           }
  28.           break;
  29.         }
  30.       }
  31.     }
  32.   }
  33. }
  34. </script>
  35.   </head>
  36.   <body>
  37.     <form method="post" action="bidon.aspx" name="F_SAISIE">
  38.       <table>
  39.         <tr id="toto">
  40.           <td>
  41.             toto<input type="text" name="txttoto" size="5" maxlength="5" value="" onkeyup="javascript:sautTabInput(this,'F_SAISIE');">
  42.           </td>
  43.         </tr>
  44.         <tr id="tutu">
  45.           <td>
  46.             tutu<input type="text" name="txttutu" size="5" maxlength="5" value="" onkeyup="javascript:sautTabInput(this,'F_SAISIE');">           
  47.           </td>
  48.         </tr>
  49.         <tr id="titi" style="display:none">
  50.           <td>
  51.             titi<input type="text" name="txttiti" size="5" maxlength="5" value="" >           
  52.           </td>
  53.         </tr>
  54.         <tr id="tata">
  55.           <td>
  56.             tata<input type="text" name="txttata" size="5" maxlength="5" value="" >           
  57.           </td>
  58.         </tr>
  59.       </table>
  60.     </form>
  61.   </body>
  62. </html>


 
il y aurait un moyen de detecter que la zone n'est pas visible et donc que le focus ne va pas fonctionner ?
 
d'avance merci


Message édité par trmassoud le 26-07-2006 à 17:15:54
mood
Publicité
Posté le 26-07-2006 à 16:28:32  profilanswer
 

n°1413996
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-07-2006 à 16:36:03  profilanswer
 

sinon t'as l'attribut tabindex qu'est fait pour ça [:kiki]

n°1414005
trmassoud
Posté le 26-07-2006 à 16:46:13  profilanswer
 

t'es sûr ?
 
je veux que sur une zone input de longueur 5 max quand on rentre 5 caractères ça passe à la zone input suivante ?

n°1414009
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-07-2006 à 16:54:02  profilanswer
 

ah non j'avais pas tout lu ... :D
Effectivement, si tu veux que "automatiquement" tu passes sur le prochain champs mal(ou pas) rempli tu es obligé de passer par du js.
 
Pour résoudre ton problème de "visibilité" je ne vois pas d'autre solution que de tester le visible du display du "prochain" champs, en oubliant pas de remonter à son père ( et au père de son pere, et ...) pour le vérifier ( donc ton exemple il faut remonter au grand père)

n°1414023
trmassoud
Posté le 26-07-2006 à 17:14:43  profilanswer
 

anapajari a écrit :


Pour résoudre ton problème de "visibilité" je ne vois pas d'autre solution que de tester le visible du display du "prochain" champs, en oubliant pas de remonter à son père ( et au père de son pere, et ...) pour le vérifier ( donc ton exemple il faut remonter au grand père)


 
ben je vois pas comment remonter au père ou au grand père vu que je veux que la fonction soit la plus générique possible.
 
 
par contre j'ai trouvé une bidouille, c'est moche mais bon...
dans la fonction js je rajoute un try catch... :
 

Code :
  1. for (var j=1;i+j<n;j++)
  2.     {
  3.      if (champs[i+j].type == 'text')
  4.      {
  5.       try
  6.       {
  7.        champs[i+j].focus();
  8.        break;
  9.       }
  10.       catch (erreur)
  11.       {
  12.        continue;
  13.       }
  14.      }
  15.     }


 
 

n°1414025
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-07-2006 à 17:19:41  profilanswer
 

trmassoud a écrit :

ben je vois pas comment remonter au père ou au grand père vu que je veux que la fonction soit la plus générique possible.


parentNode

n°1414029
trmassoud
Posté le 26-07-2006 à 17:22:58  profilanswer
 


 
merci je vais test


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [javascript] passage de zone à zone [résolu mais moche]

 

Sujets relatifs
menu deroulant pour date en javascriptAffichage étrange de données hexa contenues dans un buffer [Résolu]
[RESOLU] formule francais/anglais[resolu] pb execution requete
[Résolu] Redirection si url utilisé ne convient pas[Résolu] [C# .net] Récupérer des valeurs dans un GridView
[RESOLU] insérer par valeur[Résolu] Récupérer le chemin d'un fichier que l'on upload
[Résolu] Pb utilisation VLOOKUP 
Plus de sujets relatifs à : [javascript] passage de zone à zone [résolu mais moche]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR