Inserire carattere su un INPUT TEXT dalla funzione onClick

di il
3 risposte

Inserire carattere su un INPUT TEXT dalla funzione onClick

Salve a tutti. Non riuscivo al click del mouse su un buttone(esempio della calcolatrice) far apparire quel numero del buttone sul FORM INPUT TEXT, allora ho copiato un codice su internet ma non riesco a capire cosa fa:

<html>
<head><title>Hope in calcolatrice</title>
<script lan="javascript">
var k;
var op;
function num(x) {
if(form1.text1.value == 0 || form1.text1.value == "") {form1.text1.value = x;}
else {form1.text1.value = (parseInt(form1.text1.value) * 10) + parseInt(x);}
}

function somma()
{
k=form1.text1.value;
form1.text1.value=0;
op="somma";
}
function differenza()
{
k=form1.text1.value;
form1.text1.value=0;
op="differenza";
}
function prodotto()
{
k=form1.text1.value;
form1.text1.value=0;
op="prodotto";
}
function divisione()
{
k=form1.text1.value;
form1.text1.value=0;
op="divisione";
}
function risultato()
{
if (op=="somma") {form1.text1.value=parseInt(form1.text1.value)+parseInt(k); op=="";}
else if (op=="differenza") {form1.text1.value=parseInt(form1.text1.value)-parseInt(k); op=="";}
else if (op=="prodotto") {form1.text1.value=parseInt(form1.text1.value)*parseInt(k); op=="";}
else if (op=="divisione") {form1.text1.value=parseInt(form1.text1.value)/parseInt(k); op=="";}
}

</script>
</head>
<body>
<table>
<tr>
<td>
<form name="form1">
<input type="text" id="text1">
<input type="button" value=" 1 " onClick='num(this.value)'>
<input type="button" value=" 2 " onClick='num(this.value)'>
<input type="button" value=" 3 " onClick='num(this.value)'>
<input type="button" value=" + " onClick='somma();'>

<input type="button" value=" 4 " onClick='num(this.value)'>
<input type="button" value=" 5 " onClick='num(this.value)'>
<input type="button" value=" 6 " onClick='num(this.value)'>
<input type="button" value=" 7 " onClick='num(this.value)'>
<input type="button" value=" 8 " onClick='num(this.value)'>
<input type="button" value=" 9 " onClick='num(this.value)'>
<input type="button" value=" 0 " onClick='num(this.value)'>
<input type='button' value=' C ' onclick='form1.text1.value=0;'><br>
<input type="button" value=" - " onClick='differenza();'>
<input type="button" value=" * " onClick='prodotto();'>
<input type="button" value=" / " onClick='divisione();'>
<input type="button" value=" = " onClick='risultato();'>
</td>
</tr>
</table>
</body>
</html>

Quello in grassetto non riesco a capire cosa fa, xkè moltiplica per 10?...insomma quel pezzo non l'ho proprio capito.
E poi vorrei capire su onClick si mette num(this.value)...cioè perchè si mette "this"???
AIUTATEMI PER FAVORE. grazie.

3 Risposte

  • Re: Inserire carattere su un INPUT TEXT dalla funzione onClick

    Tralasciando tutto il discorso di corretta sintassi XHTML (...) andiamo a spiegare questo codice, che è in realtà intuibile anche ad un profano di JavaScript che conosca un minimo di inglese e di aritmetica...
    function num(x) {
    if(form1.text1.value == 0 || form1.text1.value == "") {form1.text1.value = x;}
    else {form1.text1.value = (parseInt(form1.text1.value) * 10) + parseInt(x);}
    }
    La funzione NUM viene chiamata quando viene premuto un INPUT dal valore numerico, a quel punto i controlli effettuati sono i seguenti:
    - Se il testo della calcolatrice è zero o vuoto, sostituiscilo con il numero cliccato
    - Altrimenti, alza di una decina il valore corrente ed aggiungici il numero cliccato

    Per quanto riguarda l'ONCLICK, "this" sappi che si riferisce all'oggetto specifico, perciò ogni THIS implica una referenza all'INPUT corrente, prendendone il valore ("value").

    Tutto chiaro?

    P.S.: Ho testato (dopo aver sistemato l'HTML...) il codice, e sembra dare qualche problema nella sottrazione.
  • Re: Inserire carattere su un INPUT TEXT dalla funzione onClick

    Eh chiaro un pochino...quindi moltiplica x 10 per far muovere i numeri tra decine, centinaia eccc?!...ok.
    Ehm ok chiaro. grazie mille!
  • Re: Inserire carattere su un INPUT TEXT dalla funzione onClick

    nextkaiser ha scritto:


    Eh chiaro un pochino...quindi moltiplica x 10 per far muovere i numeri tra decine, centinaia eccc?!...ok.
    Ehm ok chiaro. grazie mille!
    Esatto difatti, inserendo la prima cifra, essa compare come unità, ma se ne inserisci una seconda, la prima deve necessariamente passare alle decine, e così via
    Ciao!
Devi accedere o registrarti per scrivere nel forum
3 risposte