SHOW:
|
|
- or go back to the newest paste.
1 | - | <HTML> |
1 | + | <HTML> |
2 | - | <HEAD> |
2 | + | <HEAD> |
3 | - | <TITLE>Javascript Calculator</TITLE> |
3 | + | <TITLE>Javascript Calculator</TITLE> |
4 | - | <SCRIPT language="javascript" type="text/javascript"> |
4 | + | <SCRIPT language="javascript" type="text/javascript"> |
5 | - | function taglia(){ |
5 | + | function updateTaglia(){ |
6 | - | a=Number(document.calculator.sen.value); |
6 | + | var result = true; //Per tenere traccia degli esiti |
7 | - | b=Number(document.calculator.tor.value); |
7 | + | |
8 | - | c=b-60; |
8 | + | var form = document.forms["calculator"]; //Oggetto Form, che identifica il form, usato per recuperare gli elementi |
9 | - | d=c/5; |
9 | + | var seno = parseFloat(form.elements["sen"].value); |
10 | - | //f = a - (b+12.5); |
10 | + | var field = document.getElementById("result"); //Campo di stampa |
11 | - | g = evalG(a - (b+12.5)); |
11 | + | |
12 | - | |
12 | + | if(seno == NaN){ |
13 | - | document.getElementById('totalPrice').innerHTML = parseInt(d)+" "+g; |
13 | + | //ParseFloat ritorna un NaN nel caso la stringa non sia corretta, per evitare problemi nelle funzioni successive fissiamo result a false |
14 | - | } |
14 | + | //in questo modo non verranno eseguiti i calcoli che possono coinvolgere il NaN |
15 | result = false; | |
16 | - | function evalG(f){ |
16 | + | field.setAttribute("hidden" , "hidden"); |
17 | - | g = "coppa " ; |
17 | + | } |
18 | - | c_vect=["AA" , "A" , "B" , "C" , "D" , "DD o E" , "F" , "FF" , "G" "personalizzata, difficilmente reperibile in commercio"]; |
18 | + | |
19 | - | for(i = 0; i <= 9 ; i++){ |
19 | + | var sottoseno = parseFloat(form.elements["tor"].value); |
20 | - | if(f <= (i * 2.5)){ |
20 | + | |
21 | - | g = g + c_vect[i]; |
21 | + | if(sottoseno == NaN){ //Vedi sopra |
22 | - | break; |
22 | + | result = false; |
23 | - | } |
23 | + | field.setAttribute("hidden" , "hidden"); |
24 | - | } |
24 | + | } |
25 | - | } |
25 | + | |
26 | - | </SCRIPT> |
26 | + | if(result){ |
27 | - | </HEAD> |
27 | + | var taglia = Math.round((seno - 60)/5); |
28 | - | <BODY> |
28 | + | var coppa = evalG(seno - (sottoseno + 12.5)); |
29 | - | <FORM name="calculator"> |
29 | + | field.removeAttribute("hidden"); |
30 | - | Circonferenza Seno: <INPUT type="text" name="sen"> <br> |
30 | + | field.innerHTML = taglia + " " + coppa; |
31 | - | Circonferenza Sottoseno: <INPUT type="text" name="tor"> <br> |
31 | + | } |
32 | - | Get Result: <INPUT type="text" name="totalPrice"> <br> |
32 | + | } |
33 | - | <INPUT type="button" value="Taglia" onclick="javascript:taglia();"> |
33 | + | |
34 | - | </FORM> |
34 | + | function evalG(f){ |
35 | - | </BODY> |
35 | + | var g = "coppa " ; |
36 | - | </HTML> |
36 | + | var c_vect=["AA" , "A" , "B" , "C" , "D" , "DD o E" , "F" , "FF" , "G" , "personalizzata, difficilmente reperibile in commercio"]; |
37 | for(i = 0; i <= 9 ; i++){ | |
38 | if(f <= (i * 2.5)){ | |
39 | g = g + c_vect[i]; | |
40 | break; | |
41 | } | |
42 | } | |
43 | ||
44 | return g; | |
45 | } | |
46 | </SCRIPT> | |
47 | </HEAD> | |
48 | <BODY> | |
49 | <FORM id="calculator"> | |
50 | Circonferenza Seno: <INPUT type="text" name="sen" onchange=alert(result);> <br> | |
51 | Circonferenza Sottoseno: <INPUT type="text" name="tor" onchange=updateTaglia()> <br> | |
52 | <div hidden="hidden" id="result"></div> | |
53 | </FORM> | |
54 | </BODY> | |
55 | </HTML> |