Questo il codice:In pratica richiamo questa function su ogni campo in questione. In modo che se si mette un numero valido, viene effettuata la somma dei campi.codice:function ricalcola(valore) { if(isNaN(valore)) window.alert('Errore: inserire solo numeri.\rPer i numeri decimali usare il \".\"'); else form1.Totale.value = Number(form1.Dr.value); form1.Totale.value = Number(form1.Totale.value) + Number(form1.R.value); form1.Totale.value = Number(form1.Totale.value) + Number(form1.V.value); form1.Totale.value = Number(form1.Totale.value) + Number(form1.S.value); form1.Totale.value = Number(form1.Totale.value) + Number(form1.A.value); form1.Totale.value = Number(form1.Totale.value) + Number(form1.D.value); form1.Totale.value = Number(form1.Totale.value) + Number(form1.Re.value); form1.Disponibili.value = Number(form1.Monte.value) - Number(form1.Totale.value); }
Fin qui tutto ok.
Io però vorrei che quando si inserisce un valore errato dopo che si preme "OK" sull'alert, si azzerasse il campo dove è stato messo l'errore. Ma ciò non funziona.
Cambiando i parametri passati alla function, si può aggiungere il nome del campo? Come si fa a richiamare dinamicamente il nome del campo?
Mi spiego, se trasformo la funzione in ricalcola(valore, campo) posso associare all'evento onChange="ricalcola(form1.Dr.value, Dr);"
Ma in modo che "Dr" (il nome del campo) sia preso dinamicamente? Non so, magari esiste una funzione "getName" boh.. non so...
Grazie mille, spero di essermi spiegato...
C'è un altro particolare che mi sfugge. Come mai quando si verifica l'evento di errore, appare giustamente la finestra di alert, ma quando dò ok, esegue ugualmente il resto della funzione, ritrovandomi quindi con il campo Monte e PuntiDisponibili uguali a NaN? Non si blocca lì la funzione?