Ciao Mich_
allora io accedo alla pagina contentente i campi che raggruppo nell'array di cui voglio fare la somma che faccio tramite questa funzione:
codice:
var campi = new Array("ReddAttDipIndip", "ReddAttAcc", "IntReddTitAveri", "ReddSostImm","ReddComEredIndivAltreCompr", "TotaleMoltRedditi", "TotaleMoltRenditeAVSAI");
function somma(ff) {
var tot = 0;
for(var i=0; i<campi.length; i++) {
var c = ff.elements[campi[i]].value;
if(c=="") c="0";
if(c=='NaN') {alert("Not A Number"); c=0;}
tot += parseInt(c,10);
}
ff.TotaleRedditi.value = tot;
}
come puoi notare alcuni campi vengono sommati ad altri campi, a loro volta soggetti ad un'altra funzione che li moltiplica per un valore inserito in un apposito menu a tendina (questi campi sono TotaleMoltRedditi e TotaleMoltRenditeAVSAI). Per calcolarli utilizzo le funzioni:
codice:
var campi = new Array("PensPrevProfInd", "VitaliziAltreRend", "AlimFigliMin", "AltriRedditi");
function molt(ff) {
var tot = 0;
for(var i=0; i<campi.length; i++) {
var c = ff.elements[campi[i]].value;
if(c=="") c="0";
if(c=='NaN') {alert("Not A Number"); c=0;}
tot += parseInt(c,10);
}
ff.TotaleMoltRedditi.value = (ff.PensPrevProfInd.value * ff.MoltPensPrevProfInd.options[ff.MoltPensPrevProfInd.selectedIndex].value)
+ (ff.VitaliziAltreRend.value * ff.MoltVitaliziAltreRend.options[ff.MoltVitaliziAltreRend.selectedIndex].value) +
(ff.AlimFigliMin.value * ff.MoltAlimFigliMin.options[ff.MoltAlimFigliMin.selectedIndex].value)
+ (ff.AltriRedditi.value * ff.MoltAltriRedditi.options[ff.MoltAltriRedditi.selectedIndex].value);
somma(ff);
}
e
codice:
var campi = new Array("RenditaAVS", "RenditaAI");
function molti(ff) {
var tot = 0;
for(var i=0; i<campi.length; i++) {
var c = ff.elements[campi[i]].value;
if(c=="") c="0";
if(c=='NaN') {alert("Not A Number"); c=0;}
tot += parseInt(c,10);
}
ff.TotaleMoltRenditeAVSAI.value = (ff.RenditaAVS.value * 12)
+ (ff.RenditaAI.value * 12);
somma(ff);
}
il problema appunto sorge a causa di questi campi soggetti a moltiplicatore... infatti se nella pagina vi fossero semplicemente campi soggetti alla prima funzione di somma basterebbe cliccare in qualsiasi punto della pagina per far apparire il totale nell'apposito campo.
In questo caso invece noto che ciò non è sufficiente, devo infatti cliccare su uno o più campi soggetti alla funzione moltiplicatore poi cliccare su un campo non soggetto a questa funzione e poi cliccare su un altro campo soggetto a moltiplicatore... insomma un casino!
Per questo motivo ho pensato appunto che una soluzione potrebbe FORSE essere quella di provare a dare il focus a tutti questi campi in successione... per un tempo ridottissimo... in modo tale che poi cliccando poi in un qualsiasi punto della pagina (o senza addirittura fare ciò) mi appaia il Totale di tutti questi campi... nell'input text apposito.
Ma probabilmente quello che dici tu... di richiamare le funzioni con l'onload è la soluzione + adatta!
Spero di essermi spiegato
se non si vede capisco che può essere un po'complicato da capire.