Newsgroup: it.comp.lang.javascript
Titolo: Somma tra tre textbox: come fare?

Vorrei fare il modo che mi venissero sommati gli importi contenuti in tre
textbox diverse, possibilmente in tempo reale mentre inserisco i valori.
Scusate se ripeto una domanda magari gią fatta, ma ho provato a cercare
dapperetutto (vecchi post, faq) ma non trovo niente di completo che faccia
al caso mio :-(
Ringrazio anticipatamente tutti coloro vorranno aiutarmi,
Saluti, micky

 textbox diverse, possibilmente in tempo reale mentre inserisco i valori.
  Su MSIE5 e Netscape4.7 ho visto che funziona onKeyPress
  <INPUT type="text" onKeyPress="mia_funzione_di_somma_instantanea();">
  che pero' non e' il massimo perche' quando si preme il tasto la funzione
 si avvia prima che sia stato scritto il numero sul campo. Ci sarebbero
 gli eventi onKeyUp o onKeyDown che pero' su MSIE5.00 e Netscape 4.7
 mi pare non vanno. Potresti provare.

 Scusate se ripeto una domanda magari già fatta, ma ho provato a cercare


 textbox diverse, possibilmente in tempo reale mentre inserisco i valori.
 Ieri mi sono perso in un bicchiere d'acqua. Ecco la soluzione:
<HTML lang="it" dir="ltr">
<HEAD>
  <TITLE>Quicker</TITLE>
   <SCRIPT language="javascript">
<!--
var str = "document.forms[0].elements[3].value = " +
"parseInt(0+document.forms[0].elements[0].value,10) +" +
"parseInt(0+document.forms[0].elements[1].value,10) +" +
"parseInt(0+document.forms[0].elements[2].value,10)";
function Go() {
  setTimeout("eval(str);",5);
}
// -->
</SCRIPT>
</HEAD>
<BODY bgcolor="#FFFFFF">
<FORM>
N_1:<INPUT type="text" onKeyPress="Go();"><br>
N_2:<INPUT type="text" onKeyPress="Go();"><br>
N_3:<INPUT type="text" onKeyPress="Go();"><br>
TOT:<INPUT type="text" style="color:white;background-color:black;">
</FORM>
</BODY>
</HTML>

grazie 1000 a tutti!
problema risolto,
saluti, micky

  Ieri mi sono perso in un bicchiere d'acqua.
Ti ci continui a perdere.
i setTimeout vanno usati con il contagocce, non in modo indiscriminato. Non
sono nuovi thread. E succhiano risorse come se piovessero.
Di per se' uno script del genere potrebbe anche essere "accettabile", ma se
lo poni in un contesto di un sito, dove magari vi sono dell news scrollabili
o simili...
... Meglio eliminare, quindi, i setTimeout dove possibile.
In questo caso, sono completamente inutili.
Basta usare la proprieta' onchange o onkeyup (a scelta, dipende se vuoi che
il textbox dei risultati si aggiorni mentre premi il tasto, o quando avviene
la modifica del campo - che viene notificata DOPO aver lasciato quel campo).

 la modifica del campo - che viene notificata DOPO aver lasciato quel campo).
  Nella domanda si chiedeva uno script che:
|Vorrei fare il modo che mi venissero sommati gli importi contenuti in tre
|textbox diverse, possibilmente in tempo reale mentre inserisco i valori.
   Onchange lo fa dopo che il campo ha perso il focus, mentre onkeyup
 non funziona con MSIE5.00, con Netscape 4.7 e con tutte le loro versioni
 inferiori, e non aggiorna in tempo reale se tengo premuto il tasto per
 ripetere il numero.

  ripetere il numero.
Ovvio, l'evento si chiama onkeyup. Appena rilasci il tasto, viene aggiornato
senza problemi.
.. Oppure mi vuoi dire che l'utente non LASCERA' MAI un tasto e continuera'
a premerlo all'infinito?
La soluzione ottimale da ogni punto di vista e' con onkeyup. I setTimeout
sono dei mangiarisorse impressionanti, e vanno usati col contagocce, ripeto.
Se ancora questa cosa non ti e' chiara, studiati un po' meglio JS, e lavora
di piu' sul campo.
Come ho detto prima, il tuoi script poteva essere "passabile" (e ripeto
*passabile*) se in un contesto isolato, e non di una pagina o addirittura un
sito complesso.
I setTimeout non sono thread, quando e' in esecuzione piu' di un setTimeout
gli altri ne risentono pesantemente, perche' devono suddividersi le stesse
risorse.
Poi, se vuoi continuare a programmare male, fai pure.

 Poi, se vuoi continuare a programmare male, fai pure.
  Rispondo alle domande.

   Rispondo alle domande.
Solitamente uno incomincia a rispondere alle domande, quando e' ad un certo
livello. Raggiungi quel livello, e poi ne riparliamo.
Per farlo ti mancano quantomeno due cose: Esperienza sul campo, e un pizzico
di umilta'.

 di umilta'.
  Se so rispondere rispondo al di la' di quello che so di javascript.

   Se so rispondere rispondo al di la' di quello che so di javascript.
Si, ma le risposte vanno date con cognizione di causa, e dopo aversi
studiato le reference del linguaggio (Javascript e JScript).
Tu non hai fatto ne' l'uno ne' l'altro.
Cosi' facendo, si danno informazioni FALSATE e INCOMPLETE alla persona che
pone la domanda.