matteo11102009
11-11-2014, 14:58
ciao a tutti.. oggi ho provato a realizzare una calcolatrice con javascript solo che non esegue correttamente la somma e non esegue le operazioni di sottrazione, moltiplicazione e divisione; sapreste aiutarmi? vi allego il codice:
Javascript:
<script type="text/javascript">
var temp = 0;
function cancella() {
temp=0;
document.getElementById("in_text_result").value="0";
document.getElementById("hidden_accum").value="";
document.getElementById("hidden_result").value="";
}
function selezione(value){
var sem = "0";
if (document.getElementById("in_text_result").value=="0") {
document.getElementById("in_text_result").value="";
}
value = document.getElementById("in_text_result").value + value;
if (sem=="0") {
var ottengo_valore_completo = parseFloat(value);
document.getElementById("in_text_result").value=value;
document.getElementById("hidden_accum").value=value;
}
}
function operazione(operatore){
/* value = 20 = .
* value = 21 = +
* value = 22 = -
* value = 23 = *
* value = 24 = /
* value = 25 = "="
*/
//verifico la presenza di operatori
valore = document.getElementById("hidden_accum").value;
switch(operatore){
case 20:
operatore=".";
break;
case 21:
temp = parseFloat(valore)+temp;
operatore="+";
document.getElementById("hidden_accum").value="";
document.getElementById("hidden_result").value=temp;
break;
case 22:
temp = parseFloat(valore)-temp;
operatore="-";
document.getElementById("hidden_accum").value="";
document.getElementById("hidden_result").value=temp;
break;
case 23:
temp = parseFloat(valore)*temp;
operatore="*";
document.getElementById("hidden_accum").value="";
document.getElementById("hidden_result").value=temp;
break;
case 24:
temp = parseFloat(valore)/temp;
operatore="/";
document.getElementById("hidden_accum").value="";
document.getElementById("hidden_result").value=temp;
break;
case 25:
document.getElementById("in_text_result").value = document.getElementById("hidden_result").value;
break;
}
if (operatore!="25") {
document.getElementById("in_text_result").value=operatore;
document.getElementById("hidden_accum").value=temp;
}
}
</script>
HTML
<table border="0" cellpadding="3" cellspacing="3">
<tr>
<td colspan="4"><input disabled type="text" value="0" id="in_text_result" onchange=""></td>
</tr>
<tr>
<td ><input type="reset" id="button_tipe" onclick="cancella();" value="CANC"></td>
<td ><input type="button" id="button_tipe" value="*" onclick="operazione(23)"></td>
<td ><input type="button" id="button_tipe" value="/" onclick="operazione(24)"></td>
<td ><input type="button" id="button_tipe" value="-" onclick="operazione(22)"></td>
</tr>
<tr>
<td ><input type="button" id="button_tipe" value="7" onclick="selezione(7);"></td>
<td ><input type="button" id="button_tipe" value="8" onclick="selezione(8);"></td>
<td ><input type="button" id="button_tipe" value="9" onclick="selezione(9);"></td>
<td rowspan="2"><input type="button" id="button_tipe" value="+" onclick="operazione(21)"></td>
</tr>
<tr>
<td ><input type="button" id="button_tipe" value="4" onclick="selezione(4);"></td>
<td ><input type="button" id="button_tipe" value="5" onclick="selezione(5);"></td>
<td ><input type="button" id="button_tipe" value="6" onclick="selezione(6);"></td>
</tr>
<tr>
<td ><input type="button" id="button_tipe" value="1" onclick="selezione(1);"></td>
<td ><input type="button" id="button_tipe" value="2" onclick="selezione(2);"></td>
<td ><input type="button" id="button_tipe" value="3" onclick="selezione(3);"></td>
<td rowspan="2"><input type="button" id="button_tipe" value="=" onclick="operazione(25)"></td>
</tr>
<tr>
<td colspan="2"><input type="button" id="button_tipe" value="0" onclick="selezione(0);"></td>
<td ><input type="button" id="button_tipe" value="." onclick="operazione(20)"></td>
</tr>
<input type="hidden" value id="hidden_accum">
<input type="hidden" value id="hidden_result">
</table>
Grazie mille in anticipo per ogni eventuale risposta
Javascript:
<script type="text/javascript">
var temp = 0;
function cancella() {
temp=0;
document.getElementById("in_text_result").value="0";
document.getElementById("hidden_accum").value="";
document.getElementById("hidden_result").value="";
}
function selezione(value){
var sem = "0";
if (document.getElementById("in_text_result").value=="0") {
document.getElementById("in_text_result").value="";
}
value = document.getElementById("in_text_result").value + value;
if (sem=="0") {
var ottengo_valore_completo = parseFloat(value);
document.getElementById("in_text_result").value=value;
document.getElementById("hidden_accum").value=value;
}
}
function operazione(operatore){
/* value = 20 = .
* value = 21 = +
* value = 22 = -
* value = 23 = *
* value = 24 = /
* value = 25 = "="
*/
//verifico la presenza di operatori
valore = document.getElementById("hidden_accum").value;
switch(operatore){
case 20:
operatore=".";
break;
case 21:
temp = parseFloat(valore)+temp;
operatore="+";
document.getElementById("hidden_accum").value="";
document.getElementById("hidden_result").value=temp;
break;
case 22:
temp = parseFloat(valore)-temp;
operatore="-";
document.getElementById("hidden_accum").value="";
document.getElementById("hidden_result").value=temp;
break;
case 23:
temp = parseFloat(valore)*temp;
operatore="*";
document.getElementById("hidden_accum").value="";
document.getElementById("hidden_result").value=temp;
break;
case 24:
temp = parseFloat(valore)/temp;
operatore="/";
document.getElementById("hidden_accum").value="";
document.getElementById("hidden_result").value=temp;
break;
case 25:
document.getElementById("in_text_result").value = document.getElementById("hidden_result").value;
break;
}
if (operatore!="25") {
document.getElementById("in_text_result").value=operatore;
document.getElementById("hidden_accum").value=temp;
}
}
</script>
HTML
<table border="0" cellpadding="3" cellspacing="3">
<tr>
<td colspan="4"><input disabled type="text" value="0" id="in_text_result" onchange=""></td>
</tr>
<tr>
<td ><input type="reset" id="button_tipe" onclick="cancella();" value="CANC"></td>
<td ><input type="button" id="button_tipe" value="*" onclick="operazione(23)"></td>
<td ><input type="button" id="button_tipe" value="/" onclick="operazione(24)"></td>
<td ><input type="button" id="button_tipe" value="-" onclick="operazione(22)"></td>
</tr>
<tr>
<td ><input type="button" id="button_tipe" value="7" onclick="selezione(7);"></td>
<td ><input type="button" id="button_tipe" value="8" onclick="selezione(8);"></td>
<td ><input type="button" id="button_tipe" value="9" onclick="selezione(9);"></td>
<td rowspan="2"><input type="button" id="button_tipe" value="+" onclick="operazione(21)"></td>
</tr>
<tr>
<td ><input type="button" id="button_tipe" value="4" onclick="selezione(4);"></td>
<td ><input type="button" id="button_tipe" value="5" onclick="selezione(5);"></td>
<td ><input type="button" id="button_tipe" value="6" onclick="selezione(6);"></td>
</tr>
<tr>
<td ><input type="button" id="button_tipe" value="1" onclick="selezione(1);"></td>
<td ><input type="button" id="button_tipe" value="2" onclick="selezione(2);"></td>
<td ><input type="button" id="button_tipe" value="3" onclick="selezione(3);"></td>
<td rowspan="2"><input type="button" id="button_tipe" value="=" onclick="operazione(25)"></td>
</tr>
<tr>
<td colspan="2"><input type="button" id="button_tipe" value="0" onclick="selezione(0);"></td>
<td ><input type="button" id="button_tipe" value="." onclick="operazione(20)"></td>
</tr>
<input type="hidden" value id="hidden_accum">
<input type="hidden" value id="hidden_result">
</table>
Grazie mille in anticipo per ogni eventuale risposta