Javascript Simple calculatrice avec Interrupteur
J'ai besoin d'aide avec une calculatrice simple, je suis en train de faire avec javascript.
Le code js est comme suit (mon professeur veut m'utiliser 4 fonctions, pour chaque type d'opération):
<script>
function plus(a,b) {
return (a + b);
}
function minus(a,b) {
return (a - b);
}
function multiply(a,b) {
return (a * b);
}
function divide(a,b) {
return (a / b);
}
function calc() {
var x = document.getElementById("oper1").value;
var y = document.getElementById("operx").value;
var z = document.getElementById("oper2").value;
var w = document.getElementById("resul").value;
switch (y) {
case '0':
w = plus(x, z);
break;
case '1':
w = minus(x, z);
break;
case '2':
w = multiply(x, z);
break;
case '3':
w = divide(x, z);
break;
default:
w = "Don't really know..";
}
}
</script>
<input type="text" id="oper1" value="">
<select id="operx">
<option value="0">SUMAR</option>
<option value="1">RESTAR</option>
<option value="2">MULTIPLICAR</option>
<option value="3">DIVIDIR</option>
</select>
<input type="text" id="oper2" value="">
<input type="button" onClick="calc();" value="=">
<input type="text" id="resul" value="">
Mon code ne fonctionne pas, en fait, n'est pas de répondre quoi que ce soit et je ne vois pas d'erreurs afin que je puisse debug... quelqu'un pourrait me dire si vous voyez mon erreur ici? J'ai essayé des centaines de combinaisons, mais sans avoir une console de débogage ou de quelque chose.
- Pouvez-vous mettre un point d'arrêt dans votre fonction et voir si ça s'appelle pas du tout?
- Instructions de commutation peut être délicat. Ils comparent les valeurs à l'aide de la
===
opérateur, qui peut être remplacé par un if/else instruction pour utiliser==
à la place. Essayez ceci par exemple:switch(1){ case '1': 'success'; break; default: 'fail'; }
, alors ceswitch(1){ case 1: 'success'; break; default: 'fail'; }
Vous devez vous connecter pour publier un commentaire.
JavaScript ne pas utiliser de pointeurs dans la façon dont vous comptez l'utiliser. Vous devez écrire explicitement l'arrière de votre résultat au champ de sortie:
En outre, vous devriez analyser les données d'entrée dans un numéro à l'aide soit
parseInt()
ouparseFloat()
. Si vous n'avez pas JavaScript permettra de traiter les valeurs d'entrée comme des chaînes de caractères et interprète de+
comme la concaténation de chaîne, par exemple.Exemple de Violon
Cela ne vous autorise pas à établir W et ensuite le
<input/>
mise à jour de lui-même. Vous pourriez faire un des éléments suivants à la place.Après la mise
w
nedocument.getElementById("resul").value=w;
OU
Aussi, les points de bonus si vous validez votre formulaire de nice, la fonction de ce cas est
IsNumeric()
)plus
fonction -, il semble tout simplement concaténer la chaîne de valeurs dea
etb
. Essayer de passer ces variables par le biais d'unparseInt
ouparseFloat
appel, selon les besoins.