source de tstjs3.htm (exemple avec boutons évolués)

<HTML>
<HEAD>
  <TITLE>test javascript n°3 (formulaire évolué)</TITLE>

  <SCRIPT language="JavaScript">
  function commentaire()
  {
   nomJour=new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
   var now=new Date(); //j'aurai pu l'appeler "maintenant" mais "now" est plus court
   var str = "Nous sommes le " + now.getDate() + "/" + (now.getMonth()+1) + "/" + (now.getYear()+1900) + "\n" 
             + " et il est " + now.getHours() + "h" + now.getMinutes() + "mn" + now.getSeconds() + "s\n"
             + " et c'est un " + nomJour[now.getDay()] + " sur terre.\n" ;
   str+="vous avez un message d'A440 de la planete FA :\n  ";
   for(i=0;i<60;i++) //chaîne aléatoire
     {
       var j=Math.floor(Math.random()*42);
       if(j<36)
         str+=j.toString(36).toUpperCase(); //la base 36 utilise les chiffres de 0 à z 
       else str+=" ";
     }
   return str;
  }

  function TestNb(nb,sonNom)
  { 
    if(nb.length<1)
          {
                 alert("champ " + sonNom + " non rempli !");
                 return 0; //pas la peine de continuer dès la 1ère erreur
          }
    for (var i = 0; i < nb.length ; i++) //on déclare une variable (ici i) au moment où on en a besoin
       {
       var ch = nb.substring (i, i+1); //j'isole chaque caractère
       if ((ch<"0" || ch>"9") && ch!="." && ch!="-" )
          {
                 alert("valeur réelle de " + sonNom + " non valide.");
                 return 0; //pas la peine de continuer dès erreur
          }
       }
     return nb; //si la boucle est finie, je n'ai trouvé aucune erreur
  }

  function tauxTva(bouton_radio)
  {
    for (i=0;i<bouton_radio.length;i++)
     if (bouton_radio[i].checked) // on n'en trouvera qu'un de checked
       code_tva=bouton_radio[i].value;
    if(code_tva=="autre") tva=parseFloat(prompt("entrez le taux de TVA","20.6"));
    else tva=parseFloat(code_tva);
    taux=(100+tva)/100;
    return taux;
  }

  function main(formulaire)
    {
        pu = TestNb(formulaire.prix.value,"prix"); 
        q = TestNb(formulaire.quantite.value,"quantité");
        taux = tauxTva(formulaire.tva);
        monnaie=formulaire.devise.options[formulaire.devise.selectedIndex].text;  
        tot=pu*q*taux;
        formulaire.total.value = tot + " " + monnaie;
        formulaire.txt.value=commentaire();
  }
  </script>
</HEAD>

<BODY bgcolor="#FFFFBB" background="/img/fond-var.gif">
<H1 align="center">test programmation javascript</H1>
<H2 align="center">exemple 3 - avec boutons évolués</H2>

<FORM name="in_out"> 
  <TABLE border=0>
    <TR><TD>prix unitaire : </TD><TD>
      <INPUT type="text" size="10" name="prix"></TD></TR>
    <TR><TD>quantité : </TD><TD>
      <INPUT type="text" size="10" name="quantite"></TD></TR>
    <TR><TD>prix total </TD><TD>
      <INPUT type="text" size="10" name="total" value=" -------- "></TD></TR>
  </TABLE>
  <TABLE border=0>
     <TR><TD rowspan="4">choisissez votre taux de TVA</TD>
           <TD><INPUT type="radio" name="tva" value="5.5">réduite (5.5)</TD></TR>
     <TR><TD><INPUT type="radio" name="tva" value="20.6">maximale (20.6)</TD></TR>
     <TR><TD><INPUT type="radio" name="tva" value="0"  checked >je veux un total HT</TD></TR> <!--option cochée  par défaut (checked) -->
     <TR><TD><INPUT type="radio" name="tva" value="autre">autre taux</TD></TR>
  </TABLE>
  <P>Ces prix sont en 
    <SELECT name="devise"> 
      <OPTION>Dollar
      <OPTION SELECTED>Euro 
      <OPTION>Yen
      <OPTION>Livre
    </SELECT>  </P>
  <TEXTAREA name="txt" cols=50 rows=5> 
     Cette fenêtre sera remplie par le programme     
  </TEXTAREA>
   
  <P><input type="button" value="Lancer le calcul" onClick="main(in_out)"></P>
</FORM>

<HR>
<P><A HREF="http://pat.trau.fr/">Patrick Trau</A>,
   <A HREF="http://www-ipst.u-strasbg.fr/">IPST</A>,
   <A HREF="http://www-ulp.u-strasbg.fr/">Université Louis Pasteur</A>
   Strasbourg,  mai 2002</P>
</BODY>
</HTML>


Patrick Trau, IPST, Université Louis Pasteur Strasbourg, mai 2002