Souci calcul javascript (débutant)

Bonjour,

Pour m'amuser, j'essaie de coder un calculateur de prix de cigs en javascript... mais je avoue que je bloque, plusieurs questions, mais tout d'abord mon code :

<html>

<head>
<title>Calculateur du prix dépensé en cigarettes dans le temps</title>

<script type="text/JavaScript">

function resultat(){
var a = document.forms[0].nbreans.value;
var b = document.forms[0].nbrecigs.value;
var c = document.forms[0].jours.value;
document.forms[0].result.value = a*b*c;
var d = document.getElementById('result').value;
var e = document.forms[0].nbrecigarettespaquet.value;
var f = document.forms[0].prixpaquet.value;
document.forms[0].result2.value = d/e*f;}

</script>

</head>

<body>

<form>

<p>Je fume depuis <input type="text" name="nbreans" value="" size="4"> années, <br/>
à raison de <input type="text" name="nbrecigs" value="" size="4"> cigarettes par jour, <br/>
comme je le sais, il y a <input type="text" name="jours" value="365" size="4"> jours par an. <br/><br/>

A raison de <input type="text" name="nbrecigarettespaquet" value="20" size="4"> cigarettes par paquet<br/>
Pour un prix de <input type="text" name="prixpaquet" value="5" size="4"> euros par paquet<br/><br/><br/>

<input type="button" name="Envoi" value="Valider" onclick="resultat();"><input type="reset" value="Effacer"> <br/><br/>

J'ai donc fumé <input type="text" name="result" value="" size="5"> cigarettes depuis ma première cigarette.<br/><br/>
J'ai donc dépensé <input type="text" name="result2" value="" size="5"> euros en cigarettes !!!!<br/><br/>

</form>

</body>

</html>

Je bloque sur plusieurs points :

1 . J'aimerais récupérer ma valeur "result" (en fait la valeur de "j'ai donc fumé XXX cigarettes depuis..." et l'utiliser pour continuer mon script, ce que je pensais avoir fait avec "var d = document.getElementById('result').value;" qui me l'aurait récupérée "en d"

2 . ... pour pouvoir l'utiliser par la suite en la divisant par "e" à savoir "nbrecigarettespaquet"

3 . ... puis en multipliant le tout par "f", à savoir "prixpaquet" !

Mais ça ne fonctionne pas.... pourtant mon code me semble bon, même si c'est la première fois que je m'amuse à utiliser javascript !

Pouvez vous m'aider ?

D'avance merci !

Meth.

3 réponses

  1. Bonjour,

    Le soucis, c'est que tu utilises getElementById, alors que pour le champ result, tu n'as pas défini d'Id.

    Donc, plusieurs solutions :
    - Soit tu rajoutes id="result" à côté de son name="result"
    - Soit tu utilises getElementsByName, mais attention il renvoie un tableau donc il faut le faire en deux étapes :
    var tabResult = document.getElementsByName('result');
    var d = tabResult[0].value;
    - Soit tu utilises comme tu le faisais jusque là document.forms[0].result.value
    - Soit tu fais simplement d = a*b*c;

    Xavier
    0
    1. Merci énormement pour cette réponse Xavier, je m'y mets tout de suite !
      0
      1. Je te remercie, 30 secondes après c'est réglé !

        ... bluffé ^^
        0