Calculette en javascript

legend666 Messages postés 40 Statut Membre -  
legend666 Messages postés 40 Statut Membre -
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 1075 Statut Membre 210
 
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 Statut Membre 2
 
un conflit de nom ?

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

Merci d'avance
1