Aller au contenu

Calcul automatique


nico_4653

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres sites

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é par Eclipsis
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 :)

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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+

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...