Partage
  • Partager sur Facebook
  • Partager sur Twitter

code ne marche pas sur firefox

demande d'aide

    27 avril 2009 à 13:04:22

    Bonjour,

    Voila j'utilise un code javascript et je me suis apercu qu'il ne marche pas sur javascript
    <script language="JavaScript" type="text/JavaScript">
    	function Autotab(box, longueur, texte)
    	{
    	    if (texte.length > longueur-1) {
    	        document.getElementById('TB'+box).focus();
    	    }
    	}
    	</script>
    	<input class="case" type="text" size="2" maxlength="2"  name="TB1" value="" onkeyup="Autotab(2, this.size, this.value)"/><input class="case" type="text" size="2" maxlength="2" name="TB2"  value=""  onkeyup="Autotab(3, this.size, this.value); "/><input class="case" type="text" size="2" maxlength="2" name="TB3"  value=""  onkeyup="Autotab(4, this.size, this.value); "/><input class="case" type="text" size="2" maxlength="2" name="TB4"  value=""  onkeyup="Autotab(5, this.size, this.value); "/><input class="case" type="text" size="2" maxlength="2" name="TB5"  value=""  />
    


    Je comprend pas pourquoi est-ce que quelqu'un peux m'aider ??

    Merci de votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      27 avril 2009 à 13:16:14

      Dans tes inputs, remplaces l'attribut name par id
      • Partager sur Facebook
      • Partager sur Twitter
        27 avril 2009 à 13:17:52

        Tu permets que je l'affiche comme il faut qu'il soit lisible ?
        alors :
        function Autotab(box, longueur, texte)
        	{
        	    if (texte.length > longueur-1) {
        	        document.getElementById('TB'+box).focus();
        	    }
        	}
        

        <input class="case" type="text" size="2" maxlength="2"  name="TB1" value="" onkeyup="Autotab(2, this.size, this.value)"/>
        <input class="case" type="text" size="2" maxlength="2" name="TB2"  value=""  onkeyup="Autotab(3, this.size, this.value); "/>
        <input class="case" type="text" size="2" maxlength="2" name="TB3"  value=""  onkeyup="Autotab(4, this.size, this.value); "/>
        <input class="case" type="text" size="2" maxlength="2" name="TB4"  value=""  onkeyup="Autotab(5, this.size, this.value); "/>
        <input class="case" type="text" size="2" maxlength="2" name="TB5"  value=""  />
        

        je vais déjà regarder comme ça et j'edit si je trouve... :p

        EDIT : @loacast : il en a peut-être besoin plus tard pour les traiter avec PHP mais +1 (faudrait mettre un name et un id identiques)
        • Partager sur Facebook
        • Partager sur Twitter
          27 avril 2009 à 13:43:07

          pourtant desfois j'utilise des fonction javascript comme celle ci pour le meme code d'ailleurs :

          <script type="text/javascript">
          	function valider(formSaisie) 
          	{
          	if((formSaisie.TB1.value != "" ) && (formSaisie.TB2.value != "" ) && (formSaisie.TB3.value != "" )&& (formSaisie.TB4.value != "" ) && (formSaisie.TB5.value != "" )  && ((formSaisie.TB1.value == 01 ) || (formSaisie.TB1.value == 02 ) || (formSaisie.TB1.value == 03 ) || (formSaisie.TB1.value == 04 ) || (formSaisie.TB1.value == 05 ) || (formSaisie.TB1.value == 06 ) || (formSaisie.TB1.value == 07 ) || (formSaisie.TB1.value == 08 ) || (formSaisie.TB1.value == 09 )))
          	{
          	return true;
          	}
          	else 
          	{
          	alert("Veuillez entrer un numéro de téléphone valide !");
          	return false;
          	}
          	}
          
          	</script>
          


          il n'y a pas de id et pourtant ca marche...
          • Partager sur Facebook
          • Partager sur Twitter
            27 avril 2009 à 13:47:08

            Oui mais... apprends le JavaScript :/
            document.getElementById('TB'+box).focus();
            là... tu recherches un id avec la fonction getElementById... s'il n'y en a pas, ça va pas marcher....

            • Partager sur Facebook
            • Partager sur Twitter
              27 avril 2009 à 13:49:04

              a oui en effet mais si je met ca alor :

              function Autotab(box, longueur, texte)
              {
              if (texte.length > longueur-1) {
              formSaisie.'TB'+box.focus();
              }
              }
              • Partager sur Facebook
              • Partager sur Twitter
                27 avril 2009 à 13:53:45

                <input class="case" type="text" size="2" maxlength="2"  name="TB1" value="" onkeyup="Autotab(this)"/><!-- au lieu de renvoyer des infos sur l'input, on envoie carément l'objet à la fonction -->
                <input class="case" type="text" size="2" maxlength="2" name="TB2"  value=""  onkeyup="Autotab(this); "/>
                <input class="case" type="text" size="2" maxlength="2" name="TB3"  value=""  onkeyup="Autotab(this); "/>
                <input class="case" type="text" size="2" maxlength="2" name="TB4"  value=""  onkeyup="Autotab(this); "/>
                <input class="case" type="text" size="2" maxlength="2" name="TB5"  value=""  />
                

                function Autotab(input)
                	{
                	    if (input.value.length > (input.size)-1) {/*si la longueur de la valeur de l'input est plus grand que sa taille*/
                	        input.focus();/*on lui met le focus*/
                	    }
                	}
                

                Edit terminé
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  27 avril 2009 à 13:56:22

                  Par contre vaut mieux pas remplacer tes name par des id, il faut plutot rajouter un id qui à la même valeur que le name.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 avril 2009 à 13:59:27

                    Citation : birdy42

                    EDIT : @loacast : il en a peut-être besoin plus tard pour les traiter avec PHP mais +1 (faudrait mettre un name et un id identiques)


                    :p
                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 avril 2009 à 13:59:47

                      merci,

                      je comprend mieux.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 avril 2009 à 14:11:31

                        Sinon on peut aussi ne pas utiliser d'id :
                        function Autotab(box, longueur, texte){
                        	if (texte.length > longueur-1){
                        		document.getElementsByTagName('input')[box-1].focus();
                        	}
                        }
                        

                        <input class="case" type="text" size="2" maxlength="2"  name="TB1" value="" onkeyup="Autotab(2, this.size, this.value)"/>
                        <input class="case" type="text" size="2" maxlength="2" name="TB2"  value=""  onkeyup="Autotab(3, this.size, this.value); "/>
                        <input class="case" type="text" size="2" maxlength="2" name="TB3"  value=""  onkeyup="Autotab(4, this.size, this.value); "/>
                        <input class="case" type="text" size="2" maxlength="2" name="TB4"  value=""  onkeyup="Autotab(5, this.size, this.value); "/>
                        <input class="case" type="text" size="2" maxlength="2" name="TB5"  value=""  />
                        

                        Par contre s'il y a d'autres input dans la page, une légère modif s'impose :
                        function Autotab(box, longueur, texte){
                        	if (texte.length > longueur-1){
                        		document.getElementById('input').getElementsByTagName('input')[box-1].focus();
                        	}
                        }
                        

                        <div id="input">
                        	<input class="case" type="text" size="2" maxlength="2"  name="TB1" value="" onkeyup="Autotab(2, this.size, this.value)"/>
                        	<input class="case" type="text" size="2" maxlength="2" name="TB2"  value=""  onkeyup="Autotab(3, this.size, this.value); "/>
                        	<input class="case" type="text" size="2" maxlength="2" name="TB3"  value=""  onkeyup="Autotab(4, this.size, this.value); "/>
                        	<input class="case" type="text" size="2" maxlength="2" name="TB4"  value=""  onkeyup="Autotab(5, this.size, this.value); "/>
                        	<input class="case" type="text" size="2" maxlength="2" name="TB5"  value=""  />
                        </div>
                        

                        Ça en revient presque au même sauf qu'on met qu'un seul id sur une div plutôt que un id par input.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          27 avril 2009 à 14:29:13

                          @birdy42 : ben non ô_ô
                          Le but de sa fonction c'est de faire une tabulation automatique : quand son champs à 2 caractères, on passe automatiquement au champs suivant. Or toi tu ne donnes que l'objet input en cours en paramètre et tu lui donnes le focus si le value a un nombre de caractères inférieur à l'attribut size du input. Donc en gros tu ne fais rien puisque de toutes façons il n'y a pas de else, on est déjà dans le input donc on a beau dépasser le nombre de lettres, on garde le focus.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            27 avril 2009 à 14:35:15

                            aïe j'ai :honte: honte, j'ai pas trop regardé son code j'avoue ... :p
                            • Partager sur Facebook
                            • Partager sur Twitter
                              27 avril 2009 à 14:38:22

                              Ah bravo, je ne te félicites pas ! :lol:

                              Ceci dit, pas con de penser à n'envoyer que l'input en paramètre :
                              function Autotab(input){
                              	var index;
                              	var trouve=false;
                              	var i=0;
                              	if (input.value.length==input.getAttribute('size')){
                              		while(!trouve){
                              			if(document.getElementById('input').getElementsByTagName('input')[i]==input){
                              				index=i;
                              				trouve=true;
                              			}
                              			else
                              				i++;
                              		}
                              		document.getElementById('input').getElementsByTagName('input')[index+1].focus();
                              	}
                              }
                              

                              <div id="input">
                              	<input class="case" type="text" size="2" maxlength="2"  name="TB1" value="" onkeyup="Autotab(this)"/>
                              	<input class="case" type="text" size="2" maxlength="2" name="TB2"  value=""  onkeyup="Autotab(this); "/>
                              	<input class="case" type="text" size="2" maxlength="2" name="TB3"  value=""  onkeyup="Autotab(this); "/>
                              	<input class="case" type="text" size="2" maxlength="2" name="TB4"  value=""  onkeyup="Autotab(this); "/>
                              	<input class="case" type="text" size="2" maxlength="2" name="TB5"  value=""  />
                              </div>
                              
                              • Partager sur Facebook
                              • Partager sur Twitter

                              code ne marche pas sur firefox

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown