Javascript formulaire

Résolu
fonzy -  
OConell Messages postés 146 Statut Membre -
Bonjour,

J'ai créé un formulaire php et javascript qui fonctionne correctement, cependant, j'aimerais ajouter une amélioration. Je m'explique, le formulaire calcule le prix selon différents critères à choisir dans une liste déroulante. Malheureusement, les modifications ne sont prises en compte que si je modifie mon choix, j'aimerais que le calcul se fasse avec les valeurs par défaut.
J'ai cru comprendre que c'était à cause du onchange, mais n'est-il pas possible de calculer directement?

Le code:
<script type="text/javascript">
function calcul()
{
document.pub.htva.value=parseFloat(document.pub.produit.value)*1;
document.pub.tva.value=parseFloat(document.pub.htva.value)*0.21;
document.pub.tvac.value=parseFloat(document.pub.htva.value)+parseFloat(document.pub.tva.value);
}
</script>

<form action="cmdpub.php" method="post" name="pub">
<tr>
<td rowspan="9" valign="top" width="20%">
<u>Devis On-line</u><br />
Rappel de votre commande:
<table>
<tr><td>Prix HTVA :<td><input type="text" size="5" name="htva" onkeyup="calcul();" />
<tr><td>TVA (21%) :<td><input type="text" size="5" name="tva" onkeyup="calcul();" />
<tr><td>Prix TVAC :<td><input type="text" size="5" name="tvac" onkeyup="calcul();" />
</table>
<td align="right" width="">Produit :<td>
<select name="produit" onchange="calcul();">
<? include "connexion.php";
$req = mssql_query("select s_modele,s_id,s_prix_ht from stock where s_internet='1'");
while($data=mssql_fetch_array($req)){
?><option value="<? echo $data['s_prix_ht'];?>"><? echo $data['s_modele'];?></option>
<? }?>
</select>
</form>

6 réponses

jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
dans ta balise body, tu ajoutes un onload="calcul();"
ce qui aura pour effet de lancerta fonction calcul au chargement de ta page
0
fonzy
 
C'est une bonne idée, je ne connaisais pas mais ca marche toujours pas
0
dreamfeeder Messages postés 253 Statut Membre 54
 
et si tu ajoute:


window.onload=function(){calcul();};
juste avant </script>
0
fonzy
 
Bien vu, ca marché nikel ...

Es t on obligé de mettre cette ligne avant le script? Et pourquoi?

Merci beaucoup en tout cas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dreamfeeder Messages postés 253 Statut Membre 54
 
il est recommandé, par soucis de clarté, de dissocier le code javascript du code html, donc il est préferable d'eviter les <body onload="javascript:calcul();"> ou encore <a onclick="javascript:mafunction();"> et il faut bien sur le mettre entre les balise <script></script> pour qu'il soit interpreté comme tel.
0
OConell Messages postés 146 Statut Membre 8
 
bonjour

https://openweb.eu.org/articles/validation_formulaire

petit apport même si le sujet est résolu
0