Aller au contenu

Sujets conseillés

Posté

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

Posté (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é par Eclipsis
Posté

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

Posté

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

Posté

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

Posté

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+

Veuillez vous connecter pour commenter

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



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