Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vérifier qu'une variable existe

Sujet résolu
    13 mai 2010 à 16:59:00

    Je vous envoie ma page de test en entier, je récupère des données d'un formulaire et si la valeur de la case que je quitte est inférieure à la précédente ou supérieure à la suivante je corrige la valeur.

    J'utilise le DOM pour récupérer les valeurs du formulaires.
    Le problème c'est que pour la première case, il n'y a pas de précédente case, donc la fonction ne marche pas.
    Je voudrais quelque chose qui dise si endprevious n'existe pas alors sa valeur vaut zéro. J'ai essayé différente méthode trouvés sur des forums mais aucune ne marche.

    PS: Si vous testez le script sur firefox ou google chrome ne rajouté pas d'indentation aux formulaires, sinon cela ne marchera plus du tout.

    <HTML>
    <HEAD>
        <style type="text/css">
    #editpanel
          {	        position:   absolute;
    		top:  20px;
    		margin-left: 50px;
                    width:800px;
    		height:500px;
    		overflow: auto;
             }
        </style>
    
    <TITLE>Test</TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    
    function verifybegin(var1)
    {
       if(isNaN(var1.value))
          {  alert('You must imput a number!');}
    	  
       else
          {
          var beginthis= var1.value; 
          var endthis=var1.nextSibling.value;
          var endprevious = var1.parentNode.previousSibling.firstChild.nextSibling.value;
    
    if(typeof(endprevious)=='undefined')
        { var endprevious=0;}
    
          var result = beginthis - endthis;
    if (result >= 0)
        { var1.value=endthis;}
    
          var result2= beginthis - endprevious;
    if (result2 <= 0)
        { var1.value=endprevious;}
    
           }
    }
    
    </SCRIPT>
    
    </HEAD>
        <BODY>
    <div id="editpanel">
    <form method="post" name="1" action="cible.php" ><input type="text" id="begin_1" name="begin" value="4360" onchange="verifybegin(this)" size=10 /><input type="text" id="end_1" name="end" value="5360" onchange="verifyendthis)" size=10/><input type="button" onclick="request(readData,1);" value="OK" /></form><form method="post" name="2" action="cible.php" ><input type="text" id="begin_2" name="begin" value="5360" onchange="verifybegin(this)" size=10 /><input type="text" id="end_2" name="end" value="7560" onchange="verifyendthis)" size=10/><input type="button" onclick="request(readData,2);" value="OK" /></form><form method="post" name="3" action="cible.php" ><input type="text" id="begin_3" name="begin" value="7560" onchange="verifybegin(this)" size=10 /><input type="text" id="end_3" name="end" value="9280" onchange="verifyendthis)" size=10/><input type="button" onclick="request(readData,3);" value="OK" /></form><form method="post" name="4" action="cible.php" ><input type="text" id="begin_4" name="begin" value="9280" onchange="verifybegin(this)" size=10 /><input type="text" id="end_4" name="end" value="11600" onchange="verifyendthis)" size=10/><input type="button" onclick="request(readData,4);" value="OK" /></form><form method="post" name="5" action="cible.php" ><input type="text" id="begin_5" name="begin" value="11600" onchange="verifybegin(this)" size=10 /><input type="text" id="end_5" name="end" value="13040" onchange="verifyendthis)" size=10/><input type="button" onclick="request(readData,5);" value="OK" /></form>
    </div>
        </BODY>
    </HTML>
    


    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2010 à 17:02:53

      1) T'as déjà fait un topic, avec le même problème.
      2) Je t'ai filé la réponse dans l'autre topic.

      Alors quoi ?
      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2010 à 17:10:12

        Essai pour la première case. Met une valeur supérieur à celle de la seconde case, tu verras cela ne fonctionne pas. Même avec ton code.
        C'est toujours le même code mais pas le même problème donc j'ouvre un autre topic pour que cela soit plus clair. (le premier étais pour comparer deux variables, là c'est pour vérifier qu'une variable existe, c'est totalement différent).
        Maintenant, si tu me dis que cela marche sur ton pc, même pour la première case, il faut que j'essaie sur un autre pc.
        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2010 à 17:13:40

          Non, y doit y avoir une différence entre nos codes. Si on a le même navigateur, c'est le même sur ton PC ou le mien...

          Voici ma page, teste : http://nyro.xeo.online.fr/test/test.html
          • Partager sur Facebook
          • Partager sur Twitter
            13 mai 2010 à 17:25:19

            J'ai essayé ta page test, pour la première case quoique je fasse, il n'y a pas d'alerte qui apparaît.
            Pour certaines des autres cases je dois d'abord entrée une valeur inférieure à la valeure précédente pour faire apparaître le message et ensuite seulement quand je met une valeur supèrieure à la case suivante le message apparaît. Seulement la 4e case en partant du haut marche du premier coup.
            Mon firefox: Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.2.3) Gecko/20100401 Firefox/2.0.0.11;MEGAUPLOAD 1.0
            Et maintenant je vais essayé ta page sur un autre PC, cela m'étonne trop.
            ___
            Sur l'autre PC (Window XP, le mien est sous Vista, rien de tout cela ne devrait faire de différence).
            J'obtiens exactement les mêmes résultats que décrits précédement à propos de la page de test que tu as mis en ligne.
            Version des navigateurs
            Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19
            et Google chrome 4.1.249.1064

            Je n'ai pas encore testé pour internet explorer, mais je voudrais une solution qui marche avec tout les navigateurs.

            Même résultat pour internet explorer 8.0.

            Je ne comprend vraiment pas pourquoi ton code marche avec toi mais pas avec moi.
            • Partager sur Facebook
            • Partager sur Twitter
              13 mai 2010 à 18:04:37

              En gros ça ne fonctionne pas sous Firefox 2, ni sur Firefox 3. Mais réessaie maintenant, j'ai modifié un truc pour que ça passe sous IE8, espérons que ce sera pareil pour FF 2 et 3. (Par contre Chrome, c'est pas normal.)

              Chez moi ça fonctionne sous Firefox 3.6, Chrome 4.1, Chrome 5 (bêta), Opera 10.5, et IE 8 maintenant.

              Donc, qu'on s'entende bien : l'événement "onchange" implique de desélectionner la case en question. Tu entres "5400" dans la première case, par exemple, puis tu cliques ailleurs, et là l'alerte apparaît.
              • Partager sur Facebook
              • Partager sur Twitter
                13 mai 2010 à 18:08:15

                Salut,

                Comme l'a dit Nyro Xeo, attention à n'ouvrir qu'un topic par sujet sur un même forum ! J'ai donc simplement fermé l'autre topic, et la discussion continue ici.

                Amusez-vous bien !
                GuilOooo
                • Partager sur Facebook
                • Partager sur Twitter
                J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                  13 mai 2010 à 18:16:40

                  Tu es génial, maintenant cela fonctionne sur firefox et sur chrome. Tu m'as sauvé beaucoup de temps et de recherche. Merci beaucoup.

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Vérifier qu'une variable existe

                  × 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