Partage
  • Partager sur Facebook
  • Partager sur Twitter

calcul dans javascript

Sujet résolu
    9 avril 2009 à 17:59:52

    Bonjour,
    je veux faire un calcul automatique avec javascript. mais cela ne fonctionne pas.
    Quelle difference entre ces 2 lignes:
    - document.travian.prod_bois.value
    - document.getElementById('prod_bois').value

    quelle différence entre 'name' et 'id'?
    quelle erreurs ai-je commis dans mon javascript?
    merci de votre aide


    <html>
    
    <head>
    <title>TRAVIAN</title>
    <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
    <LINK rel="stylesheet" type="text/css" href="CSS2.css">
    </head>
    
    
    
    <body><center>
    <form name='travian'>
    
    
    
    <table>
     <tr> 
       <td class="row1"></td>
       <td class="row1">STOCK</td>
       <td class="row1">PRODUCTION</td>
       <td class="row1">BESOIN</td>
       <td class="row1">TEMPS</td></tr>
    
    <tr> 
       <td class="row1"><img src="http://s4.travian.fr/img/un/r/1.gif">  BOIS</td>
       <td class="row1"><INPUT style="text-align: center" type="text" value="stock_bois" id="stock_bois" size="20" maxlength="3" onfocus="this.value=''"></td>
       <td class="row1"><INPUT style="text-align: center" type="text" value="prod_bois" id="prod_bois" size="20" maxlength="3" onfocus="this.value=''"></td>
       <td class="row1"><INPUT style="text-align: center" type="text" value="besoin_bois" id="besoin_bois" size="20" maxlength="3" onfocus="this.value=''"></td>
       <td class="row1"><INPUT style="text-align: center" type="text" name="temps_bois" id="temps_bois" size="20"></td></tr>
    </table>
    
    
    <br><input onclick="temps_bois();" type="button" value="CALCUL">
    
    
    <code type="javascript"><script language="javascript">
    function temps_bois() {
    
    if(document.travian.stock_bois.value == '') {alert("Vous devez saisir votre adresse de messagerie électronique !"); return false;}
     else {return true;}
    
    if(document.travian.besoin_bois.value == "") {document.getElementById('temps_bois').value = "";}
    if(document.travian.stock_bois.value > document.travian.besoin_bois.value)  {document.getElementById('temps_bois').value = "0 (en stock)";}
    else {
    document.getElementById('temps_bois').value = "60*(document.travian.besoin_bois.value - document.travian.stock_bois.value)/document.travian.prod_bois.value";}
    }
    </script></code>
    
    
    
    </form></center></body></html>
    
    • Partager sur Facebook
    • Partager sur Twitter
      9 avril 2009 à 18:38:03

      Citation

      - document.travian.prod_bois.value
      - document.getElementById('prod_bois').value


      La différence entre c'est deux lignes -si je ne m'abuse- est la version du Html que tu emploie, Html 4.01 ? xHtml 1.1 ? 1.0 ? Strict ? Transitionnal ?

      Bref précise un doctype à ton document et en fonction de celui-ci utilise l'attribut name ou id.

      Edit : j'ai un doute sur ce que je viens de dire finalement vu que c'est un fomulaire... Les <table /> me l'ont caché :p N'empêche qu'utiliser un doctype serait une bonne idée...
      • Partager sur Facebook
      • Partager sur Twitter
        9 avril 2009 à 19:04:54

        Oui, j'ai aussi un doute sur ce que tu as dis ^^

        Je crois qu'il est préférable d'utiliser les id avec document.getElementById() .

        Mais dans le cas spécifique des formulaires, c'est vrai qu'il est commun d'utiliser les attributs name et d'écrire document.name_du_formulaire.name_du_champ ...

        Par contre, pour que les deux solutions fonctionnent à coup sûr, il faudrait que tu mettes un name et un id à tous tes input... ce qui n'est pas le cas actuellement.

        Enfin, ton problème réside dans le fait que ta fonction porte le même nom que l'un de tes id/name.

        Change le nom de la fonction, et ça devrait mieux fonctionner...

        (Mais je ne garantis pas que la fonction ne contient pas d'erreurs...)
        • Partager sur Facebook
        • Partager sur Twitter

        calcul dans javascript

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown