Calculatrice, bug calcul avec eval()
Bonjour, voici mon code.
J'ai remarqué qu'il y avait une erreur si on cliquait sur * ou / plusieurs fois d'affilé : eval() ne calcule rien, la page est plantée...
Serait-il possible d'empêcher ce beug ?
Merci beaucoup
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| <!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8"/>
<title>Calculatrice</title>
<script language="JavaScript">
var texte='';
function chiffre(a){
texte+=a;
document.getElementsByTagName("label")[0].innerHTML = texte;
}
function cale(ch){
texte+=" "+ch+" ";
document.getElementsByTagName("label")[0].innerHTML = texte;
}
function res(){
if(texte[1] == "*" || texte[1] == "/"){ //Gestion des cas particuliers si * ou / au début du calcul, réinitialisation pour débeuguer
texte='';
}
texte+=" = " + eval(texte);
document.getElementsByTagName("label")[0].innerHTML = texte;
texte='';
}
</script>
</head>
<body bgcolor="#ffffff" text="#0080ff">
<h1>Calculs</h1>
<h2>Choisir un chiffre</h2>
<p>Cliquez sur le bouton
<input type="button" value="0" onClick="chiffre('0')"/>
<input type="button" value="1" onClick="chiffre('1')"/>
<input type="button" value="2" onClick="chiffre('2')"/>
<input type="button" value="3" onClick="chiffre('3')"/>
<input type="button" value="4" onClick="chiffre('4')"/>
<input type="button" value="5" onClick="chiffre('5')"/>
<input type="button" value="6" onClick="chiffre('6')"/>
<input type="button" value="7" onClick="chiffre('7')"/>
<input type="button" value="8" onClick="chiffre('8')"/>
<input type="button" value="9" onClick="chiffre('9')"/>
</p>
<h2>Choisir <u>un</u> opérateur</h2>
<p>Cliquez sur le bouton
<input type="button" value="+" onClick="cale('+')"/>
<input type="button" value="-" onClick="cale('-')"/>
<input type="button" value="*" onClick="cale('*')"/>
<input type="button" value="/" onClick="cale('/')"/>
</p>
<h2>Validez
<input type="button" value="OK" onClick="res()"/>
</h2>
<br/>
<h2>Votre calcul est : <label></label></h2>
</body>
</html> |