Partage
  • Partager sur Facebook
  • Partager sur Twitter

document.getElementById fonctionne pas sur firefox

Sujet résolu
    2 janvier 2009 à 22:19:01

    j'ai fait une fonction pour calculer automatiquement un total,
    seulement j'ai un petit soucis,
    le document.getElementById fonctionne bien sur ie mais ça fonctionne pas sur firefox

    function calculMontant()
    	{
        var NameInputTotalMontantTotal="TotalMontantTotal";
        var TotalMontantTotal=0;
        for (i=1; i<6; i++)
        {
          // nom des inputs de la ligne en cours
          var NameInputTarifUnitaire="TarifUnitaire"+i;
          var NameInputQuantite="Quantite"+i;
          var NameInputMontantTotal="MontantTotal"+i;
          
          if(document.getElementById(NameInputTarifUnitaire) != null)
          {
            if(parseFloat(document.getElementById(NameInputTarifUnitaire).value)>0)
            {
              if(parseInt(document.getElementById(NameInputQuantite).value)>0)
              {
                TarifUnitaire=parseFloat(document.getElementById(NameInputTarifUnitaire).value);
                Quantite=parseInt(document.getElementById(NameInputQuantite).value);
                MontantTotal=TarifUnitaire*Quantite;
                
                
                TotalMontantTotal=TotalMontantTotal+MontantTotal;
                document.getElementById(NameInputMontantTotal).value= round(MontantTotal,2);
              }
            }
          }
          
        }
        if(TotalMontantTotal!=0)
          document.getElementById(NameInputTotalMontantTotal).value=round(TotalMontantTotal,2);
      }
    



    du coup j'ai utilisé
    le document.forms['saisie'] et ça fonctionne très bien sur ie et sur firefox, seulement le code est très long (plus bas j'ai mis le code que pour une ligne , la ligne 1, seulement j'ai 5 lignes de calcul en tout , voir plus par la suite)

    function calculMontant()
    	{
        var TotalMontantTotal=0;
        var TarifUnitaire=0;
        var Quantite=0;
    
         
        if (document.forms['saisie'].TarifUnitaire1.value !='' && document.forms['saisie'].TarifUnitaire1.value!= null ) 
        {  
          if (document.forms['saisie'].Quantite1.value !='' && document.forms['saisie'].Quantite1.value != null ) 
          {
            TarifUnitaire=parseFloat(document.forms['saisie'].TarifUnitaire1.value);
            Quantite=parseInt(document.forms['saisie'].Quantite1.value);
            MontantTotal=TarifUnitaire*Quantite;
            
            TotalMontantTotal=TotalMontantTotal+MontantTotal;
            document.forms['saisie'].MontantTotal1.value=MontantTotal;
            
            TarifUnitaire=0;
            Quantite=0;
          }
        }
    
        if(TotalMontantTotal!=0)
          document.forms['saisie'].TotalMontantTotal.value=round(TotalMontantTotal,2);
      }
    


    comment faire pour pouvoir un code qui soit plus général ??
    merci d'avance pour votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      2 janvier 2009 à 22:35:44

      Citation : cirdec


      le document.getElementById fonctionne bien sur ie mais ça fonctionne pas sur firefox


      euh... ça marche très bien sur firefox le document.getElementById... je vois pas pourquoi il marcherais pas dans ton code...
      regarde si tu n'as pas mis 2 fois le même id... et si ce n'est pas le cas, donne les codes entiers... qu'on puisse tester dans les mêmes conditions que toi(ou si tu veux mettre la page en ligne histoire qu'on ai pas besoin de se fatigue à faire copier-coller c'est encore mieu :p )
      • Partager sur Facebook
      • Partager sur Twitter
        2 janvier 2009 à 22:56:14

        arf je pense savoir pourquoi du coup ^^ , j'ai pas mis d'"id" sur mes inputs , j'ai simplement des "name"
        je pensais que ça suffisait
        ça doit venir de ça surement ??

        désolé je peux pas le mettre en ligne, j'ai pas la base chez moi

        voici le code du formulaire
        <body bgcolor="#FFCC33" background="../Images/carre.gif" onload="calculMontant();" onmouseover="window.status='<?echo titre?>';return true;" link="<?echo couleur_m?>" vlink="<?echo couleur_m?>" alink="<?echo couleur_m?>">
          <center>
          <br />
            <table cellspacing="0" border="1" bordercolor="#3F68B2" width="95%">
              <tr><td class="head" style="text-align:center;" ><font color="<?echo couleur_m?>"><b>Tableau PAP</b></font></td>
            </table>
        		<form name="saisie" method="post" action="popup_tab_pap.php?RefVis=<?echo $RefVisite?>">
              <table width="95%" border="1" cellspacing="0" bordercolor="<?echo couleur_m?>">
          			<tr align="center" bgcolor="<?echo couleur_f?>">
          				<td><font color="<?echo couleur_m?>"><b>Type d'aide</b></font></td>
                  <td><font color="<?echo couleur_m?>"><b>Intervenant</b></font></td>
                  <td><font color="<?echo couleur_m?>"><b>Début</b></font></td>
                  <td><font color="<?echo couleur_m?>"><b>Fin</b></font></td>
                  <td><font color="<?echo couleur_m?>"><b>Tarif unitaire</b></font></td>
                  <td><font color="<?echo couleur_m?>"><b>Quantité</b></font></td>
                  <td><font color="<?echo couleur_m?>"><b>Montant total</b></font></td>
          			</tr>
                <?php 
                for ($i=1; $i<6; $i++)
                {
                  $TypeAide="TypeAide".$i;
                  $Intervenant="Intervenant".$i;
                  $Debut="Debut".$i;
                  $Fin="Fin".$i;
                  $TarifUnitaire="TarifUnitaire".$i;
                  $Quantite="Quantite".$i;
                  $MontantTotal="MontantTotal".$i;
                  ?>
                  <tr align="center" bgcolor="#FFFFFF">
                    <td><font color="<?echo couleur_m?>"><input style="text-align:center;" type="text" size="20" name="<?php echo $TypeAide ?>" value="<?php echo $RecTabPap[$i][1] ?>" onchange="calculMontant();" <?php echo $SaisieBloquer?> /></font></td>
                    <td><font color="<?echo couleur_m?>"><input style="text-align:center;" type="text" size="20" name="<?php echo $Intervenant ?>" value="<?php echo $RecTabPap[$i][2] ?>" onchange="calculMontant();" <?php echo $SaisieBloquer?> /></font></td>
                    <td><font color="<?echo couleur_m?>"><input style="text-align:center;" type="text" size="10" name="<?php echo $Debut ?>" value="<?php echo $RecTabPap[$i][3] ?>" onchange="calculMontant();" <?php echo $SaisieBloquer?> maxLength="10" onKeyUp="masqueSaisieDate(this);" /></font></td>
                    <td><font color="<?echo couleur_m?>"><input style="text-align:center;" type="text" size="10" name="<?php echo $Fin ?>" value="<?php echo $RecTabPap[$i][4] ?>" onchange="calculMontant();" <?php echo $SaisieBloquer?> maxLength="10" onKeyUp="masqueSaisieDate(this);" /></font></td>
                    <td><font color="<?echo couleur_m?>"><input style="text-align:center;" type="text" size="6" name="<?php echo $TarifUnitaire ?>" value="<?php echo $RecTabPap[$i][5] ?>" onchange="calculMontant();" <?php echo $SaisieBloquer?> /> ?</font></td>
                    <td><font color="<?echo couleur_m?>"><input style="text-align:center;" type="text" size="4" name="<?php echo $Quantite ?>" value="<?php echo $RecTabPap[$i][6] ?>" onchange="calculMontant();" <?php echo $SaisieBloquer?> /></font></td>
                    <td><font color="<?echo couleur_m?>"><input style="text-align:center;" type="text" size="10" name="<?php echo $MontantTotal ?>" value="" disabled /> ?</font></td>
                  </tr>
                  <?php 
                }
                ?>
                
                <!-- total -->
                <tr align="center" bgcolor="#FFFFFF">
                    <td style="text-align:left;padding-left=15px;" colspan="6";><font color="<?echo couleur_m?>">Total</font></td>
                    <td><font color="<?echo couleur_m?>"><input style="text-align:center;" type="text" size="10" name="TotalMontantTotal" value="" disabled /> ?</font></td>
                </tr>
        
          		</table>
              
              <!-- ************************ INPUT HIDDEN ************************************ -->
              <!-- input servant a savoir si on enregistre ou pas -->
              <input type="hidden" name="enregistrement" value="" />
              
              <input type="hidden" name="RefVis" value="<?php echo $RefVisite?>" />
        
        		</form>
        
        </body>
        
        • Partager sur Facebook
        • Partager sur Twitter
          2 janvier 2009 à 23:00:05

          oui :p sans id c'est sûr que c'est dur... et ie doit prendre les names si il ne trouve pas d'id... (sachant que le name et "l'ancêtre du id")
          donc comme d'habitude :
          -ie a tort
          -firefox a raison
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            2 janvier 2009 à 23:02:29

            bah si l'élement que tu veux choper n'as pas d'id, comment veux-tu le récupérer avec getElementById() ?

            Ça marche avec IE car il rajoute un id = name aux champs d'un form qui n'en n'ont pas. Mauvais de se reposer sur ce genre de choses.

            et pour le titre… mdr.

            ( edit ) @xav: dans l'autre sens ça marche aussi.
            • Partager sur Facebook
            • Partager sur Twitter
              2 janvier 2009 à 23:15:01

              ^^ oui c'est sur, mais vu que sur ie ça fonctionnait je captais pas, en tout cas merci à vous :D
              • Partager sur Facebook
              • Partager sur Twitter

              document.getElementById fonctionne 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