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:
Mentre quella che crea i campi dinamici è: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>
Quindi la somma è data da quantity*product + send (i campi fissi) + assicurazione (campo dinamico in pratica quello che non funziona...)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>
Probabilmente c'è più di un errore...![]()
grazie anticipatamente

LinkBack URL
About LinkBacks
