Creer un formulaire de calcul

quinton75 Messages postés 44 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 juillet 2011 - 30 mai 2011 à 15:46
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 - 31 mai 2011 à 09:15
Bonjour,

J'essaie de crée un formulaire qui multiplie le nombre de place par le prix mais ça ne fonctionne pas

<HTML>
<HEAD>
</HEAD>


<script>

function cal() {


var pl=document.form1.places.value;

var tf=document.form1.tarifs.value;

var resultat=pl*tf;


document.form1.tresultat.value=resultat;

document.write(tresultat);
}

</script>
<form name="form1">
Places :
<select name="places">
<option value="1" onClick="cal()">1
<option value="2" onClick="cal()">2
<option value="3" onClick="cal()">3
<option value="4" onClick="cal()">4
</select>
Tarifs :
<select name="tarifs">
<option value="2" onClick="cal()">Jeune
<option value="4" onClick="cal()">Adulte
</select>



</form>

</HTML> 

8 réponses

quinton75 Messages postés 44 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 juillet 2011
30 mai 2011 à 15:52
Ci-dessous le code source original, mais ca ne marche pas

<HTML>
<HEAD>
</HEAD>


<script>

function cal() {


var pl=document.form1.places.value;

var tf=document.form1.tarifs.value;

var resultat=pl*tf;


document.form1.tresultat.value=resultat;

}

</script>
<form name="form1">
Places :
<select name="places">
<option value="1" onClick="cal()">1
<option value="2" onClick="cal()">2
<option value="3" onClick="cal()">3
<option value="4" onClick="cal()">4
</select>
Tarifs :
<select name="tarifs">
<option value="2" onClick="cal()">Jeune
<option value="4" onClick="cal()">Adulte
</select>



</form>

</HTML> 
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
30 mai 2011 à 17:33
Salut,

dans tes tag OPTION et INPUT remplace name= ".." par id=".."
ta fonction JS doit alors ressembler à un truc comac :
<script type ="text/javascript">
function calc() {
var tplaces = document.getElementById("places");
var tprix   = document.getElementById("tarifs");
var ttresultat = document.getElementById("tresultat");
ttresultat.value = tplaces.value * tprix.value;
}
</script>


Quelques explications :
- l'accès "direct" à l'élément (ex. : document.form1.tarifs) prend en compte les identifiants des tag (id) et non leur nom (name),
- l'accès "direct" à l'élément ne fonctionne que si ton script est déclaré APRES ledit élément.
Il faut donc préférer l'usage de getElementById.

A noter dans mon code :
- pas de gestion d'un champ vide
- pas de gestion d'un champ non numérique
- pas de cast lors de la multiplication
Pour résumer : il fonctionne mais c'est pas "blindé" ;)
0
quinton75 Messages postés 44 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 juillet 2011
30 mai 2011 à 18:22
Merci de ta réponse.Apres les corrections ca ne marche pas
<HTML>
<HEAD>
</HEAD>


<script type="text/javascript">
function calc() {
var tplaces = document.getElementById("places");
var tprix   = document.getElementById("tarifs");
var ttresultat = document.getElementById("tresultat");
ttresultat.value = tplaces.value * tprix.value;
}

</script>


<form id="form1">
Places :
<select id="places">
<option value="1" onClick="cal()">1
<option value="2" onClick="cal()">2
<option value="3" onClick="cal()">3
<option value="4" onClick="cal()">4
</select>
Tarifs :
<select id="tarifs">
<option value="2" onClick="cal()">Jeune
<option value="4" onClick="cal()">Adulte
</select>



</form>

</HTML> 
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
30 mai 2011 à 19:43
Avant d'aller plus loin je vois un petit souci :
function calc()

onClick="cal()"
0

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

Posez votre question
quinton75 Messages postés 44 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 juillet 2011
30 mai 2011 à 23:07
J'avais deja testé comme ca mais ca ne marche toujours pas ;)
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
31 mai 2011 à 08:48
Re,

as-tu compris ma remarque ? car ta réponse laisse supposer que non.
Tu définis une fonction "calc" mais tu appelles une fonction "cal" (sans 'c')
0
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
31 mai 2011 à 09:13
Tu as quoi dans la console d'erreur de Firefox ?
Mets des alert() pouvoir les valeurs que tu as pour chaque variable... tu trouveras bien comme ça.
0
smathis Messages postés 153 Date d'inscription lundi 22 mars 2010 Statut Membre Dernière intervention 17 juin 2011 5
31 mai 2011 à 09:15
En plus onClick n'est pas définie sur un <select>, utilise onChange.
0
Rejoignez-nous