ho un form su cui effetture la somma di alcuni valori. I campi fissi funzionano, quelli dinamici no.
la funzione che utilizzo per la somma è la seguente, la semplifico:
Codice HTML:
<script type="text/javascript" language="JavaScript">
<script type="text/javascript" language="JavaScript"><!--
function updateSum( __hForm, __productEl, __quantityEl, __assicurazioneEl, __sendEl, __priceEl )
{
var _hProduct = __hForm.elements[__productEl];
var _hQuantity = __hForm.elements[__quantityEl];
var _hAssicurazione = __hForm.elements[__assicurazioneEl];
var _hSend = __hForm.elements[__sendEl];
var _hPrice = __hForm.elements[__priceEl];
if ( _hProduct.selectedIndex == -1 )
_hPrice.value = "0 €";
else {
_hPrice.value = parseFloat( _hProduct.options[_hProduct.selectedIndex].value ) * parseInt( _hQuantity.value ) + parseFloat( _hBagaglio.options[_hBagaglio.selectedIndex].value ) + parseFloat( _hSend.options[_hSend.selectedIndex].value ) + " €";
}
} //-->
</script>
Mentre quella che crea i campi dinamici è:
Codice HTML:
<script type="text/javascript">
// Funzione che permette di aggiungere elementi al form
function AggiungiRiga(n_righe){
var numero_righe = n_righe.value;
var box = document.getElementById('box_righe');
if(isNaN(numero_righe)==true){
box.innerHTML='';
}else{
var righe=" ... ";
// Inserisco una riga ad ogni ciclo
for(i=1; i<=numero_righe; i++){
righe = righe+"<br>Ospite "+i+" <br/> Assicurazione: <select name='bagaglio[]' onchange='updateSum( this.form, \'product\', \'quantity\', \'assicurazione\', \'send\', \'price\');'><option value='0' selected='selected'>No grazie</option><option value='30'>Bag. max 15kg € 30</option><option value='50'>Bag. max 20kg € 50</option></select> <br>";
}
// Aggiorno il contenuto del box che conterrà gli elementi aggiunti
box.innerHTML=righe;
}
}
</script>
Quindi la somma è data da quantity*product + send (i campi fissi) + assicurazione (campo dinamico in pratica quello che non funziona...)
Probabilmente c'è più di un errore...
grazie anticipatamente