Ciao a tutti,

dovrei far "interagire" due funzioni, una che prende dei valori da dei campi e in base ad una scelta di una tendina ad essa legata prenda o meno in considerazione il valore inserito nel campo; fatto ciò poi questi particolari campi dovranno essere sommati ad altri che non sottostanno ad una scelta da menu a tendina.
Mi spiego meglio:

ho questo campo:

codice:
<input name="SostImm" type="text" maxLength="10"  size="10" class="importo" onKeyUp="return controllaNumeri();" onblur="molt_sost(this.form)" />
che è associato a questa lista a tendina:

codice:
<select name="SostPropSostImmLT" size="1">
    <option value="Ospite" selected="selected">Ospite</option>
    <option value="Figli">Figli</option>
    <option value="Altre_persone">Altre persone</option>
</select>
io vorrei fare in modo che se l'utente immette un valore nel campo "SostImm" e sceglie dal menu a tendina "Ospite" questo valore venga preso in considerazione e quindi sommato agli altri campi soggetti ad una condizione del genere... ottenendo così un totale da sommare ad altri campi non soggetti a scelta da menu a tendina.

I campi soggetti a menu a tendina sono 4.

Ho provato a fare la funzione che "moltiplica" ovvero dovrebbe fare SostImm*1 se si è scelto "Ospite" oppure SostImm*0 se non si è scelto "Ospite"... la funzione è questa:

[code]
var campi = new Array("SostImm", "AltraSostImm", "QuotePart", "SostAziendale"); array contenente i campi da "moltiplicare

function molt_sost(ff) {

with(document.inviadati_Sostanza_rette_NT_user) {

var prop1 = document.inviadati_Sostanza_rette_NT_user.SostProp SostImmLT.value; creo una variabile che va a prendere il valore immesso nel menu a tendina ovvero "Ospite" o "Figli" o "Altre_persone"
var prop2 = document.inviadati_Sostanza_rette_NT_user.SostProp AltraSostImmLT.value;
var prop3 = document.inviadati_Sostanza_rette_NT_user.SostProp QuotePartLT.value;
var prop4 = document.inviadati_Sostanza_rette_NT_user.SostProp SostAziendaleLT.value;

eseguo il controllo ed in caso positivo assegno il valore 1 a prop1, in caso contrario 0
if (prop1 == "Ospite") {
prop1="1"
}else{
prop1="0"
}


if (prop2 == "Ospite") {
prop2="1"
}else{
prop2="0"
}


if (prop3 == "Ospite") {
prop3="1"
}else{
prop3="0"
}


if (prop4 == "Ospite") {
prop4="1"
}else{
prop4="0"
}

vado a verificare il valore dei campi


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);
}

assegno al campo TotaleMoltSostanza (campo nascosto) il valore risultante dal valore immesso nei campi (es. SostImm) moltiplicato per 0 oppure per 1 a seconda della scelta del menu a tendina... sommati (i 4 campi)

ff.TotaleMoltSostanza.value = (ff.SostImm.value * prop1)
+ (ff.AltraSostImm.value * prop2) +
(ff.QuotePart.value * prop3)
+ (ff.SostAziendale.value * prop4);
somma(ff);

}
}

quando avrò il valore corretto in TotaleMoltSostanza verrà poi sommato grazie ad un'altra funzione che risulta essere performante.

Ora il problema sta nella funzione che "moltiplica"... l'errore che mi dà è:

document.inviadati_Sostanza_rette_NT_user.SostProp AltraSostImmLT.value
è nullo o non è un oggetto

spero che abbiate capito il mio problema anche se forse sono stato un po' confusionario

Qualcuno ha dei suggerimenti in merito? Dove sbaglio?

Grazie