Calculette en javascript

Fermé
legend666 Messages postés 40 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 28 septembre 2005 - 12 déc. 2003 à 13:20
legend666 Messages postés 40 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 28 septembre 2005 - 14 déc. 2003 à 19:27
Bonjour,


J'aimerai savoir comment faire pour utiliser des zones de textes pour creer une calculette.

Chuis arriver à ce code :


<HTML> 
<HEAD> 
<SCRIPT LANGUAGE="Javascript"> 
// j'ai mis des commentaires por que le code soit plus "comprehensible" 


function clearformadd() { // pour "vider" les zones de textes 
document.lbn.add1.value= " "; 
document.lbn.add2.value= " "; 
} 

function add() { //definition de la fonction pour que son utilisation soit possible dès qu'il y a un click sur le bouton 
if (document.lbn.add1.value != parseInt(document.lbn.add1.value) || document.lbn.add2.value == "") //pour "limiter les failles de cross-scripting" et pour que l'utilisateur n'entre que des nombres entiers 
{ 
alert("Desolé, vous n'avez pas entrée un nombre") 

} else { 
alert(parseInt(document.lbn.add1.value) + parseInt(document.lbn.add2.value)) //addition des 2 zones de textes 
}
}

function clearformsous() { // pour "vider" les zones de textes 
document.sous.s1.value= " "; 
document.sous.s2.value= " "; 
} 

function sous() { //definition de la fonction pour que son utilisation soit possible dès qu'il y a un click sur le bouton 

if (document.sous.s1.value != parseInt(document.sous.s1.value) || document.sous.s2.value == "") //pour "limiter les failles de cross-scripting" et pour que l'utilisateur n'entre que des nombres entiers 
{ 
alert("Desolé, vous n'avez pas entrée un nombre") 

} else { 
alert(parseInt(document.sous.add1.value) - parseInt(document.sous.s2.value)) //addition des 2 zones de textes
}
}

function clearformx() { // pour "vider" les zones de textes 
document.x.x1.value= " "; 
document.x.x2.value= " "; 
} 

function x() { //definition de la fonction pour que son utilisation soit possible dès qu'il y a un click sur le bouton 

if (document.x.x1.value != parseInt(document.x.x1.value) || document.x.x2.value == "") //pour "limiter les failles de cross-scripting" et pour que l'utilisateur n'entre que des nombres entiers 
{ 
alert("Desolé, vous n'avez pas entrée un nombre") 

} else { 
alert(parseInt(document.x.x1.value) * parseInt(document.x.x2.value)) //addition des 2 zones de textes
} 
} 

function clearformd() { // pour "vider" les zones de textes 
document.d.d1.value= " "; 
document.d.d2.value= " "; 
} 

function d() { //definition de la fonction pour que son utilisation soit possible dès qu'il y a un click sur le bouton 
if (document.d.d1.value != parseInt(document.d.d1.value) || document.d.d2.value == "") //pour "limiter les failles de cross-scripting" et pour que l'utilisateur n'entre que des nombres entiers 
{ 
alert("Desolé, vous n'avez pas entrée un nombre") 

} else { 
alert(parseInt(document.d.d1.value) / parseInt(document.d.d2.value)) //addition des 2 zones de textes
} 
} 
</SCRIPT> 
</HEAD> 
<BODY BGCOLOR ="orange"> 
<CENTER> 
<font face="impact, verdana" size=2 color="white"> 
<blink>La calculette</blink> 
</font> 
</CENTER> 
<BR><BR><BR> 
Il suffit d'enttrer les nombre de votre calcul:<BR> 
<BR><BR> 
<G>Adition:</G> 
<hr width=850 color="black" align=left> 

<!-- formulaire --> 
<FORM NAME='lbn'> 
<INPUT TYPE="text" NAME="add1" VALUE="">+ 
<INPUT TYPE="text" NAME="add2" VALUE=""> 
<INPUT TYPE="button" NAME="addb" VALUE="Additionner" onClick="add()"> 
<INPUT TYPE="button" name="clearadd" value="Effacer les chiffres" onClick="clearformadd()"> 
</FORM> 

<BR><BR> 
<G>Soustraction:</G> 
<hr width=850 color="black" align=left> 

<!-- formulaire --> 
<FORM NAME='sous'> 
<INPUT TYPE="text" NAME="s1" VALUE="">- 
<INPUT TYPE="text" NAME="s2" VALUE=""> 
<INPUT TYPE="button" NAME="sb" VALUE="Soustraire" onClick="sous()"> 
<INPUT TYPE="button" name="clearadd" value="Effacer les chiffres" onClick="clearformsous()"> 
</FORM> 

<BR><BR> 
<G>Multiplication:</G> 
<hr width=850 color="black" align=left> 

<!-- formulaire --> 
<FORM NAME='x'> 
<INPUT TYPE="text" NAME="x1" VALUE="">x 
<INPUT TYPE="text" NAME="x2" VALUE=""> 
<INPUT TYPE="button" NAME="xb" VALUE="Multiplier" onClick="x()"> 
<INPUT TYPE="button" name="clearadd" value="Effacer les chiffres" onClick="clearformx()"> 
</FORM> 

<BR><BR> 
<G>Division:</G> 
<hr width=850 color="black" align=left> 

<!-- formulaire --> 
<FORM NAME='d'> 
<INPUT TYPE="text" NAME="d1" VALUE="">/ 
<INPUT TYPE="text" NAME="d2" VALUE=""> 
<INPUT TYPE="button" NAME="db" VALUE="Diviser" onClick="d()"> 
<INPUT TYPE="button" name="clearadd" value="Effacer les chiffres" onClick="clearformd()"> 
</FORM> 
</BODY> 
</HTML> 


Là, 2 probl en 1 :


1) je ne sais pas comment faire pour remplacer parseInt par un autre mot pour que les ZDT acceptent aussi les nombres à virgules.

2)y'a que l'addition qui marche !!!!!!!!!


Merci d'avance.

2 réponses

Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 208
12 déc. 2003 à 14:44
Salut,

Il semble qu'il y ait un conflit de nom (identique pour la forme et pour la fonction).
Méfie-toi aussi des noms réservés du langage, même si ce n'est pas le cas ici.

L'équivalent de "parseInt()" pour les valeurs en notation décimale est "parseFloat()", le séparateur étant le point "." et non la virgule ",".
Attention aussi, pour la division, que le diviseur ne soit pas nul !
1
legend666 Messages postés 40 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 28 septembre 2005 2
14 déc. 2003 à 19:27
un conflit de nom ?

je comprends pour clearadd (oups !!!!!!!!!!! la bourde), mais pour le reste ?

Merci d'avance
1