nico_4653 Posté 19 Janvier 2005 Posté 19 Janvier 2005 Bonjour, le code suivant doit normalement me faire la multiplication des 2 premières cellules et afficher le résultats dans la 3ème, mais cela ne fonctionne pas : <script Language="JavaScript"> var nombre = 0 ; var commande = 0 ; var quantite1 = 0; var quantite2 = 0; function majligne(ligne) { commande = quantite1 * quantite2; document.value=commande; } </SCRIPT> <FORM NAME="Commande"> <BR><script> document.write ('<CENTER><INPUT NAME="quantite1" onChange="majligne" VALUE="0" SIZE=3><BR><BR>') document.write ('<CENTER>* <INPUT NAME="quantite2" onChange="majligne" VALUE="0" SIZE=3><BR><BR>') document.write ('= <INPUT NAME="commande" VALUE="" MAXLENGTH="10"') document.write ('SIZE=10 onfocus = "this.blur()"></CENTER>') </SCRIPT> </FORM> Merci par avance pour votre aide Nicolas
Eclipsis Posté 19 Janvier 2005 Posté 19 Janvier 2005 (modifié) Salut Nicolas, Essaye un truc du style: <script Language="JavaScript">function init(){document.Form.quantite1.value=0;document.Form.quantite2.value=0;}function majligne(){ document.Form.resultat.value=document.Form.quantite1.value * document.Form.quantite2.value;}</SCRIPT><BODY onload="init();"><FORM NAME="Form"><BR><script>document.write ('<CENTER><INPUT NAME="quantite1" onChange="majligne();" SIZE=3><BR><BR>')document.write ('<CENTER>* <INPUT NAME="quantite2" onChange="majligne();" SIZE=3><BR><BR>')document.write ('= <INPUT NAME="resultat" VALUE="" MAXLENGTH="10"')document.write ('SIZE=10 onfocus = "this.blur();majligne();"></CENTER>')</SCRIPT> Ça devrait marcher... A+ Modifié 19 Janvier 2005 par Eclipsis
nico_4653 Posté 19 Janvier 2005 Auteur Posté 19 Janvier 2005 Bonjour, merci beaucoup pour la réponse. Autre question si je peux me permettre. J'ai tenté d'additionné les 2 valeurs en remplaçant le signe "*" par le signe "+" mais cela ne fonctionne pas. Comment puis-je faire? Merci beaucoup par avance Nicolas
Eclipsis Posté 19 Janvier 2005 Posté 19 Janvier 2005 Re-salut, Insère les valeurs dans un parseInt() pour les tranformer en chiffre (entier). Si ce sont des chiffres décimaux, remplace le parseInt() par parseFloat(). Voilà ce que ça donnerait: <script Language="JavaScript">function init(){document.Form.quantite1.value=0;document.Form.quantite2.value=0;}function majligne(){ document.Form.resultat.value= parseInt(document.Form.quantite1.value) + parseInt(document.Form.quantite2.value);}</SCRIPT><BODY onload="init();"><FORM NAME="Form"><BR><script>document.write ('<CENTER><INPUT NAME="quantite1" onChange="majligne();" SIZE=3><BR><BR>')document.write ('<CENTER>* <INPUT NAME="quantite2" onChange="majligne();" SIZE=3><BR><BR>')document.write ('= <INPUT NAME="resultat" VALUE="" MAXLENGTH="10"')document.write ('SIZE=10 onfocus = "this.blur();majligne();"></CENTER>')</SCRIPT> A+ Bonne continuation
nico_4653 Posté 20 Janvier 2005 Auteur Posté 20 Janvier 2005 MERCI BEAUCOUP POUR LA REPONSE Par contre, le souci, c'est que si quelqu'un tape '010' dans l'une des 2 cellules, il ne prend pas en compte '10' dans les total mais '8'. Même chose, si la personne tape '013', il soustrait automatiquement '2' au total. Comment puis-je faire? Merci d'avance Nicolas
Eclipsis Posté 20 Janvier 2005 Posté 20 Janvier 2005 Salut Nicolas, Autant pour moi, je n'avais pas pensé à ça. Les résultats que tu obtenais, à partir du moment où il avait un format type 010, le calcul était fait en octal, de même, si tu avais essayé avec des chiffres genre 0x10, ça aurait calculé en hexadécimal. Donc la solution est de faire savoir que c'est du décimal qu'on veut, d'où l'ajout de Number()... <script Language="JavaScript">function init(){document.Form.quantite1.value=0;document.Form.quantite2.value=0;}function majligne(){ document.Form.resultat.value= parseInt(Number(document.Form.quantite1.value)) + parseInt(Number(document.Form.quantite2.value));}</SCRIPT><BODY onload="init();"><FORM NAME="Form"><BR><script>document.write ('<CENTER><INPUT NAME="quantite1" onChange="majligne();" SIZE=3><BR><BR>')document.write ('<CENTER>+ <INPUT NAME="quantite2" onChange="majligne();" SIZE=3><BR><BR>')document.write ('= <INPUT NAME="resultat" VALUE="" MAXLENGTH="10"')document.write ('SIZE=10 onfocus = "this.blur();majligne();"></CENTER>')</SCRIPT> Voilà. A+
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant