Javascript : montant total...

Bastien -  
 Bastien -
Bonjour,

J'essaye de programmer un devis en javascript...
Je suis débutant en javascript et j'en chie comme un beau diable, passez moi l'expression !

Voici mon code, il semble qu'il y ait une erreur mais je vois pas...
Merci de votre aide par avance !
------------------------------------------------------
fonction pour le total
------------------------------------------------------
function mt_tot()
{
var tot = 0;
var px = 0;
for (n=1; n<8; n++)
{
px = document.devis.prix+n.value; (ça je ne sais pas si ça s'écrit comme ça... Je voudrais en fait que le prix+n corresponde aux prix saisis dans le formulaire dans les champs prix1,prix2,...)
tot = px + tot;
}
return tot;
}
------------------------------------------------------
Exemple de ligne du formulaire (calcul du prix*quantité, ça c OK)
------------------------------------------------------
<input type="hidden" name="type3" value="12.8">
<input type="text" name="qte_reargenture" size="2" maxlength="2" value="0" onchange="this.form.prix3.value = (this.form.type3.value*this.value)" onFocus="this.value=''">
<input type="text" name="prix3" size="8" value="0" maxlength="5" disabled>&euro;
------------------------------------------------------
Enfin là où j'aimerai calculer le total...
------------------------------------------------------
<input type="button" name="bt_total" value="Montant total TTC de votre devis" onClick="this.form.total.value = mt_tot();">
<input type="text" name="total" size="8" maxlength="6" value="0" disabled>&euro;
------------------------------------------------------
J'obtiens la réponse NAN dans mon champs total là où devrait apparaître le résultat !
------------------------------------------------------
PLEASE HELP !!!

2 réponses

  1. Aki
     
    Tu peux accéder à n'importe quelle objet à partir de Document.all quand tu ne connais pas la structure exacte

    document.all(TON_IDENTIFIANT).value
    1
    1. Bobinours Messages postés 2903 Statut Membre 504
       
      Conseil à ne surtout pas suivre ;o)

      document.all est reservé à IE.

      Les nouveaux navigateurs suivent la norme des DOM (Document Object Model).
      Pour accéder à un élément, il faut faire :

      document.getElementById('ID_Element');

      Pour en savoir un peu plus, voir ici : http://www.allhtml.com/forum/index.php?t=l&f=2&i=71726&u=Bobinours (Message Daté du : 14-03-2002 à 14:04)

      -= Bobinours =-
      0
      1. Bastien > Bobinours Messages postés 2903 Statut Membre
         
        Merci @ tous !

        Je vais m'arrêter là puisque tout fonctionne !
        Ma patronne est contente, tout baigne ! ;-)

        Aller @++

        Bastien
        0
  2. marty25 Messages postés 56 Date d'inscription   Statut Membre
     
    heu.... en effet je crois que ton histoire de n.value ne te donne po vraiement ce que tu veux. En fait (si g tout compris....) c:

    prixn.value ... A partir de ca, c a toi de voir comment tu peux gerer la concatenantion de n avec prix...

    Voili :)
    Marty(...)
    0
    1. Bobinours Messages postés 2903 Statut Membre 504
       
      Bastien, si j'ai bien compris, tu cherches ceci :

      px = document.devis.elements['prix' + n].value;
      tot += px;


      Et tant qu'à faire, passe aussi le formulaire à ta fonction mt_tot() :

      this.form.total.value = mt_tot(this.form);
      ...
      function mt_tot(leForm)
      ...
      px = leForm.elements['prix' + n].value;


      Et enfin, pour convertir en décimal ton champ text, utilise parseInt() mais attention, il y a quelque bug d'arrondi :o/

      px = parseFloat(leForm.elements['prix' + n].value);

      -= Bobinours =-
      0
      1. Bastien > Bobinours Messages postés 2903 Statut Membre
         
        Et bien merci pour votre aide !

        Je vais tester tout ça de ce pas, et je vous dirai si tout fonctionne bien à présent ! Merci et @++

        Bastien
        0
      2. Bastien > Bobinours Messages postés 2903 Statut Membre
         
        MERCI MERCI ET ENCORE MERCI !!!

        TOUT FONCTIONNE A MERVEILLE GRACE @ TOI...

        Chapeau les artistes !
        Bonne continuation @ tous !

        Bastien
        0
      3. Bobinours Messages postés 2903 Statut Membre 504 > Bastien
         
        De rien ;)

        -= Bobinours =-
        0