Alléger du code Javascript

Résolu/Fermé
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 - 28 déc. 2013 à 17:06
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 - 1 janv. 2014 à 19:11
Bonjour à toutes la communauté,

Je reviens vers vous car j'ai toujours trouvé réponse ici.
J'ai il y a un petit moment maintenant créé une "feuille de caisse" qui sert, en intranet, à compter la caisse en fin de journée. tout fonctionne bien mais j'ai soif de connaissance et j'aimerais alléger ce code :

function cal() {

// Recup nombres de pièces et billets //

var nb1=document.form1.nombre1.value;
var nb2=document.form1.nombre2.value;
var nb3=document.form1.nombre3.value;
var nb4=document.form1.nombre4.value;
var nb5=document.form1.nombre5.value;
var nb6=document.form1.nombre6.value;
var nb7=document.form1.nombre7.value;
var nb8=document.form1.nombre8.value;
var nb9=document.form1.nombre9.value;
var nb10=document.form1.nombre10.value;
var nb11=document.form1.nombre11.value;
var nb12=document.form1.nombre12.value;
var nb13=document.form1.nombre13.value;
var nb14=document.form1.nombre14.value;
var nb15=document.form1.nombre15.value;

// Calculs montant pièces et billetts//

var res1=Number(0.01)*Number(nb1);
var res2=Number(0.02)*Number(nb2);
var res3=Number(0.05)*Number(nb3);
var res4=Number(0.10)*Number(nb4);
var res5=Number(0.20)*Number(nb5);
var res6=Number(0.50)*Number(nb6);
var res7=Number(1)*Number(nb7);
var res8=Number(2)*Number(nb8);
var res9=Number(5)*Number(nb9);
var res10=Number(10)*Number(nb10);
var res11=Number(20)*Number(nb11);
var res12=Number(50)*Number(nb12);
var res13=Number(100)*Number(nb13);
var res14=Number(200)*Number(nb14);
var res15=Number(500)*Number(nb15);

// Recup des résultats //

document.form1.tot1.value=res1.toFixed(2);
document.form1.tot2.value=res2.toFixed(2);
document.form1.tot3.value=res3.toFixed(2);
document.form1.tot4.value=res4.toFixed(2);
document.form1.tot5.value=res5.toFixed(2);
document.form1.tot6.value=res6.toFixed(2);
document.form1.tot7.value=res7.toFixed(2);
document.form1.tot8.value=res8.toFixed(2);
document.form1.tot9.value=res9.toFixed(2);
document.form1.tot10.value=res10.toFixed(2);
document.form1.tot11.value=res11.toFixed(2);
document.form1.tot12.value=res12.toFixed(2);
document.form1.tot13.value=res13.toFixed(2);
document.form1.tot14.value=res14.toFixed(2);
document.form1.tot15.value=res15.toFixed(2);

var pie1=document.form1.tot1.value;
var pie2=document.form1.tot2.value;
var pie3=document.form1.tot3.value;
var pie4=document.form1.tot4.value;
var pie5=document.form1.tot5.value;
var pie6=document.form1.tot6.value;
var pie7=document.form1.tot7.value;
var pie8=document.form1.tot8.value;
var bil9=document.form1.tot9.value;
var bil10=document.form1.tot10.value;
var bil11=document.form1.tot11.value;
var bil12=document.form1.tot12.value;
var bil13=document.form1.tot13.value;
var bil14=document.form1.tot14.value;
var bil15=document.form1.tot15.value;

// Calculs des totaux pièces et bilets //

var totpie=Number(pie1)+Number(pie2)+Number(pie3)+Number(pie4)+Number(pie5)+Number(pie6)+Number(pie7)+Number(pie8);
var totbil=Number(bil9)+Number(bil10)+Number(bil11)+Number(bil12)+Number(bil13)+Number(bil14)+Number(bil15);

document.form1.billets.value=totbil.toFixed(2);
document.form1.pieces.value=totpie.toFixed(2);

// calculs des totaux journée //

var biltot=document.form1.billets.value;
var pietot=document.form1.pieces.value;

var totcai=Number(biltot)+Number(pietot);
document.form1.totalcaisse.value=totcai.toFixed(2);

// Calcul du total de feuille de caisse //

var caitot=document.form1.totalcaisse.value;

var totjou=Number(caitot)-251;
document.form1.total.value=totjou.toFixed(2);

}

pour info la page se présente comme ceci :

  <div id="calculs">
<span class="text">Pièces</span>
<br /><br />
<table cellpadding="0" cellspacing="0">
<tr>
<td><span id"1" class="type" onMouseOver="infobulle(this, 'Pièces de 1 cent');">
0,01 €</span>
</td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre1" id="nombre1" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot1" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span id="2" class="type" onMouseOver="infobulle(this, 'Pièces de 2 cents');">
0,02 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre2" id="nombre2" value="" size="3" onChange="cal();" />
</td>
<td>
=
</td>
<td>
<input type="text" name="tot2" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span id="3" class="type" onMouseOver="infobulle(this, 'Pièces de 5 cents');">
0,05 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre3" id="nombre3" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot3" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Pièces de 10 cents');">
0,10 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre4" id="nombre4" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot4" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Pièces de 20 cents');">
0,20 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre5" id="nombre5" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot5" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Pièces de 50 cents');">
0,50 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre6" id="nombre6" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot6" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Pièces de 1 euro');">
1,00 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre7" id="nombre7" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot7" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Pièces de 2 euros');">
2,00 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre8" id="nombre8" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot8" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr><td colspan="6"> </td></tr>
<tr>
<td colspan="4"align="left">
Total pieces :
</td>
<td colspan="1" align="right">
<input type="text" name="pieces" disabled="disabled" class="disabled" size="4">
</td>
<td align="right"> </td>
</tr>
</table>
<br />
</div>

<div id="info">
<span class="text">Billets</span>
<br /><br />
<table cellpadding="0" cellspacing="0">
<tr>
<td><span class="type" onMouseOver="infobulle(this, 'Billets de 5 euros');">
5,00 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre9" id="nombre9" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot9" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Billets de 10 euros');">
10,00 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre10" id="nombre10" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot10" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Billets de 20 euros');">
20,00 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre11" id="nombre11" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot11" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Billets de 50 euros');">
50,00 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre12" id="nombre12" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot12" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Billets de 100 euros');">
100,00 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre13" id="nombre13" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot13" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Billets de 200 euros');">
200,00 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre14" id="nombre14" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot14" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>
<tr>
<td>
<span class="type" onMouseOver="infobulle(this, 'Billets de 500 euros');">
500,00 €</span></td>
<td>
 X
</td>
<td>
<input type="text" class="input" name="nombre15" id="nombre15" value="" size="3" onChange="cal();"/>
</td>
<td>
=
</td>
<td>
<input type="text" name="tot15" disabled="disabled" class="disabled" size="4">
</td>
<td><span class="error-message"></span></td>
</tr>

<tr>
<td colspan="6"> </td>
</tr>

<tr>
<td colspan="4" align="left">Total billets : </td>
<td colspan="1" align="right"><input type="text" name="billets" disabled="disabled" class="disabled" size="4"></td>
<td align="right"> </td>
</tr>
</table>
<br /><span class="text">Totaux</span>
<table>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td align="left"><span class="type" onMouseOver="infobulle(this, 'Montant de la caisse.');">Total caisse :</span></td>
<td align="right"><input type="text" name="totalcaisse" disabled="disabled" class="disabled" size="4"></td>
</tr>
<tr>
<td>Fond de caisse :</td>
<td><font color="#FF0000">-251</font></td>
</tr>
<tr>
<td align="left"><span class="type" onMouseOver="infobulle(this, 'Montant TOTAL des espèces de la journée.');">Total :</span></td>
<td align="right"><input type="text" name="total" disabled="disabled" class="disabled" size="4"></td>
</tr>
</table>
</div>
<div class="clr"></div>

Merci pour votre aide et le partage de votre savoir.

CDT, Smoky

A voir également:

2 réponses

gardiendelanuit Messages postés 1770 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 264
Modifié par gardiendelanuit le 28/12/2013 à 19:41
Bonsoir,

Pour la récupération des données tu pourrais déjà parcourir tous les éléments du form et les stocker dans un tableau en utilisant
var allElem= document.form1.getElementByTagName('*');

et
var elem;
for(elem in allElem){
     //récupération des values de elem et traitement
}

et s'inspirer de ça pour le reste ;)
Merci de mettre "Résolu" quand le problème est réglé!
La connaissance c'est comme la confiture: moins on en a et plus on l'étale.
1
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
29 déc. 2013 à 13:47
Merci pour l'idée gardiendelanuit. je vais regarder de ce coté et faire 2 ou 3 recherche about that.

Je laisse le sujet en non résolu si d'autres idées reviennent.
0
smoky184 Messages postés 121 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 22 janvier 2014 9
1 janv. 2014 à 19:11
Bon pas de nouvelles idées. je met le topic en résolu.
Merci encore gardiendelanuit
0