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 !!!
A voir également:

2 réponses

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
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
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
marty25 Messages postés 56 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
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
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
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
Bobinours Messages postés 2903 Statut Membre 504 > Bastien
 
De rien ;)

-= Bobinours =-
0