Partage
  • Partager sur Facebook
  • Partager sur Twitter

Formulaire non reconnu

Anonyme
    21 octobre 2008 à 20:32:30

    Bonjour,

    J'ai un formulaire en JS, mais il n'est pas reconnu par FF ni IE7 ni Opera 9.
    La console d'erreurs de FF m'affiche un avertissement "reference to undefined property document.form1" et même une erreur "document.form1 is undefined".

    Je ne comprends vraiment pas !

    Voici on code :
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>facture</title>
    <script language="javascript" type="text/javascript">
    // on déclare les variables et leur type (entier)
    var nbrshoes = 0; 
    var nbrgloves = 0; 
    var nbrclubgraphite = 0; 
    var nbrclubmizuno = 0; 
    var nbrclubslingshot = 0; 
    var nbrbag = 0;
    var soustotal = 0;
    var total = 0;
    
    // on récupère les valeurs qui à la base sont du texte
    nbrshoes = document.form1.shoes.value; 
    nbrgloves = document.form1.gloves.value; 
    nbrclubgraphite = document.form1.club_graphite.value; 
    nbrclubmizuno = document.form1.club_mizuno.value; 
    nbrclubslingshot = document.form1.club_slingshot.value; 
    nbrbag = document.form1.bag.value; 
    
    // 2 calculs simples 
    soustotal = nbrshoes*40 + nbrgloves*60 + nbrclubgraphite*120 + nbrclubmizuno*180 + nbrclubslingshot*290 + nbrbag*150;
    total = soustotal + 12;
    
    // on convertit ces chaines en nombre
    /* nbrshoes = Number(shoesbrut); 
    nbrgloves = Number(glovesbrut); 
    nbrclubgraphite = Number(clubgraphitebrut); 
    nbrclubmizuno = Number(clubmizunobrut); 
    nbrclubslingshot = Number(clubslingshotbrut); 
    nbrbag = Number(bagbrut); */
    
    // fonction pour calculer la somme totale (dont les frais de port)
    function calculertotal() 
    {
    	document.form1.total.value = total;
    }
    
    function alerte() 
    {
    	alert("Shoes : " + nbrshoes+ 
    	"; gloves : " + nbrgloves+ 
    	"; graphite : " + nbrclubgraphite+ 
    	"; mizuno : " + nbrclubmizuno+ 
    	"; slingshot : " + nbrclubslingshot+ 
    	"; bag : " + nbrbag+ ".");
    }
    </script> 
    </head> 
     
    <body> 
    
    <ul>
    	<li><a href="../index.html">retour à l'accueil</a>, </li>
    	<li><a href="presentation.html">presentation</a>, </li>
    	<li><a href="qcm.html">QCM</a>, </li>
    	<li><a href="facture/facture.php">traitement de la facture</a>.</li>
    </ul>
    
    <form action="facture.php" name="form1" method="post">
    <h2>Choisissez le nombre d'articles.</h2>
     
    <ul> 
    	<li><input type="text" name="shoes" value="" id="form_shoes" size="3" maxlength="3" /> <label for="form_shoes">paire de chaussures (noir et blanc, <a href="#">Ardlington</a>, 40 ?)</label> </li>
    	<li><input type="text" name="gloves" value="" id="form_gloves" size="3" maxlength="3" /> <label for="form_gloves">paire de gants (<a href="#">DT Shaddle</a>, 60 ?)</label></li>
    	<li><input type="text" name="club_graphite" value="" id="form_club_graphite" size="3" maxlength="3" /> <label for="form_club_graphite">club (de la série <a href="#">Graphite Demon</a>, 120 ?)</label></li>
    	<li><input type="text" name="club_mizuno" value="" id="form_club_mizuno" size="3" maxlength="3" /> <label for="form_club_mizuno">club (de la série <a href="#">Mizuno MX 25</a>, 180 ?)</label></li>
    	<li><input type="text" name="club_slingshot" value="" id="form_club_slingshot" size="3" maxlength="3" /> <label for="form_club_slingshot">club (de la série <a href="#">Slingshot</a>, 209 ?)</label></li>
    	<li><input type="text" name="bag" value="" id="form_bag" size="3" maxlength="3" /> <label for="form_bag">sac Hotblade (150 ?)</label>.</li>
    </ul>
    
    <script type="text/javascript">document.writeln("<p>Sous-total : " +soustotal+ " &euro;.</p>");</script>
    
    + frais de port (12 ? par livraison).</p>
    
    <p><input type="button" value="Calculer le total" onclick="calculertotal()" /> <input type="reset" value="Réinitialiser" /> | <input type="button" value="alerte" onclick="alerte()" /></p>
    
    <p>Somme totale <input type="text" name="total" value="" /> &euro;.</p> 
    </form>
    
    </body>
    </html>
    
    • Partager sur Facebook
    • Partager sur Twitter
      21 octobre 2008 à 21:31:22

      C'est normal si tu veux, ton code est lancé avant que la page n'est été chargé. Le formulaire en tant que tel n'existe donc pas. Il faut que tu lance une fonction dès que la page a fini de charger.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        21 octobre 2008 à 21:57:53

        Merci pour le principe, je comprends.

        Mais comment fait-on concrêtement ? Est-ce qu'on englobe tout le code par une fonction (par ex 'formulaire') et que dans le body on met 'onload="formulaire();"' ?
        • Partager sur Facebook
        • Partager sur Twitter

        Formulaire non reconnu

        × 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