salve,
in un form di ordinazione prodotto.. in questa pagina faccio vedere l'elenco e faccio scegliere la modalità pagamento.
select pagamento
-> contrassegno aggiungo la spesa del contrassegno e ricalcolo il totale
->bonifico nascondo e rimuovo la spesa del contrassegno e ricalcolo
->carta idem
->rimessa diretta.. setto a zero le spese di spedizione
ora siccome mi devo ricordare qst spese spedizione le salvo in due campi hidden spese e speseold
se seleziono qls option mi calcola tutto bene, se la cambio non fa nulla e firefox mi restituisce:
TypeError: document.getElementById(...) is null
nella riga:
document.getElementById('spese').value = document.getElementById('speseold').value;
codice:<body> <form name="modulo" action="ordine4_ins.php?risp=1" method="post" class="pure-form"> Cliente: <SELECT id="anagrafica" name="anagrafica" > <OPTION VALUE="0">Sel. Cliente</OPTION> <optgroup label="B" > <OPTION value="56" >BAdheheh</OPTION> </optgroup><optgroup label="C" > <OPTION value="55" >Chdhgd</OPTION> <OPTION value="51" >Cshhdsdh</OPTION> </optgroup></select> Modalita' Pagamento: <!-- onchange aggiunge spese di spedizione --> <select size="1" name="pagamento" id="pagamento" onchange="vis_contrassegno(this.value)"> <option value="0">Seleziona -></option> <option value="contrassegno">Contrassegno</option> <option value="bonifico">Bonifico Bancario</option> <option value="carta di credito">Carta di Credito</option> <option value="rimessa diretta">Rimessa Diretta</option> </select> <div id="banca" style="display: none;">Selezionare la Banca:<br><SELECT id="banche" name="banche" ><OPTION value="1" >Banca 1</OPTION><OPTION value="2" >banca 2</OPTION></select></div> <br> <br> <div class="tabella"> <div class="riga"> <div class="colonna1" style="height: 20px; line-height: 20px;" >Prodotto</div> <div class="colonnadescr" style="height: 20px; line-height: 20px;" >Descrizione</div> <div class="colonna2" style="height: 20px; line-height: 20px;" >Prezzo Uni.</div> <div class="colonna3" style="height: 20px; line-height: 20px;" >Quantita'</div> <div class="colonna4" style="height: 20px; line-height: 20px;" >Prezzo Totale</div> </div> <div class="riga" id="riga0" > <div class="colonna1"> <input name="prodotti0" id="prodotti0" type="hidden" value="39" > <span title="Note Olf. Fiorite; Calde; Speziate EDP su Note di LA PETITE ROBE NOIRE ml.50" >08-6</span></div> <div class="colonnadescr" id="colonnadescr_id0" > Note Olf. Fiorite; Calde; Speziate EDP su Note di LA PETITE ROBE NOIRE ml.50</div> <div class="colonna2" id="colonna2_id0" > 27.50 €</div> <div class="colonna3"> 1<input name="qty0" id="qty0" type="hidden" size=3 value="1" > </div> <div class="colonna4" id="colonna4_id0" > 27,50 €</div> <input name="p_uni0" id="p_uni0" type="hidden" value="27.50" > </div> <div class="riga" id="riga1" > <div class="colonna1"> <input name="prodotti1" id="prodotti1" type="hidden" value="29" > <span title="Note Olf. Fresche; Agrumate; Marine EDP su Note di ABERCROMBIE ML.50" >18-57</span></div> <div class="colonnadescr" id="colonnadescr_id1" > Note Olf. Fresche; Agrumate; Marine EDP su Note di ABERCROMBIE ML.50</div> <div class="colonna2" id="colonna2_id1" > 24.50 €</div> <div class="colonna3"> 10<input name="qty1" id="qty1" type="hidden" size=3 value="10" > </div> <div class="colonna4" id="colonna4_id1" > 245,00 €</div> <input name="p_uni1" id="p_uni1" type="hidden" value="24.50" > </div> <div class="riga" > <div class="colonna1"> </div> <div class="colonnadescr" > </div> <div class="colonna2" > </div> <div class="colonna3"> Sub-Totale: </div> <div class="colonna4" id="colonna4tot" > 272,50 €<input name="sub_totale" id="sub_totale" type="hidden" value="272.5" > </div> </div> <div class="riga" > <div class="colonna1"> </div> <div class="colonnadescr" id="colonnadescr_bonus" > </div> <div class="colonna2" > 13,00 €<input name="prezzo_bonus" id="prezzo_bonus" type="hidden" value="13.00" > </div> <div class="colonna3"> 1</div> <div class="colonna4" > 13,00 €</div> </div> <div class="riga" > <div class="colonna1"> </div> <div class="colonnadescr" > </div> <div class="colonna2" > </div> <div class="colonna3"> Spedizioni: </div> <div class="colonna4" id="spese_id_col" > 3,00 €<input name="spese" id="spese" type="hidden" value="3.00" > <input name="speseold" id="speseold" type="hidden" value="3.00" > </div> </div> <div class="riga" id="contrassegno" style="display: none" > <div class="colonna1"> </div> <div class="colonnadescr" > </div> <div class="colonna2" > </div> <div class="colonna3"> Contrassegno: </div> <div class="colonna4" > 3,00 €<input name="contrassegno_costo" id="contrassegno_costo" type="hidden" value="3.00" > </div> </div> <div class="riga" > <div class="colonna1"> </div> <div class="colonnadescr" > </div> <div class="colonna2" > </div> <div class="colonna3"> Totale: </div> <div class="colonna4" id="colonna4totale" > 288,50 €</div> </div> </div> <input type="hidden" name="cont" id="cont" value="2" > <input type="hidden" name="bonus" id="bonus" value="1" > <input type="hidden" name="qty_tot" id="qty_tot" value="11" > <br> <input type="button" name="sub" value="Prosegui" onClick="Modulo3()" class="pure-button pure-button-primary"> </form> </body>codice:function vis_contrassegno(paga) { alert (paga); switch (paga) { case 'contrassegno': document.getElementById('banca').style.display='none'; document.getElementById('contrassegno').style.display = 'block'; document.getElementById('spese').value = document.getElementById('speseold').value; spese = parseFloat(document.getElementById('spese').value); spese1 = spese.toFixed(2); spese2 = spese1.replace('.', ','); document.getElementById('spese_id_col').innerHTML = spese2 + ' €'; totale_tot = parseFloat(document.getElementById('sub_totale').value); totale_tot += parseFloat(document.getElementById('prezzo_bonus').value); totale_tot += spese; totale_tot += parseFloat(document.getElementById('contrassegno_costo').value); totale_tot1 = totale_tot.toFixed(2); totale_tot2 = totale_tot1.replace('.', ','); document.getElementById('colonna4totale').innerHTML = totale_tot2 + ' €'; break; case 'bonifico': document.getElementById('banca').style.display='block'; document.getElementById('contrassegno').style.display = 'none'; totale_tot = parseFloat(document.getElementById('sub_totale').value); totale_tot += parseFloat(document.getElementById('prezzo_bonus').value); document.getElementById('spese').value = document.getElementById('speseold').value; alert('spese' + document.getElementById('spese').value); alert('speseold' + document.getElementById('speseold').value); spese = parseFloat(document.getElementById('spese').value); spese1 = spese.toFixed(2); spese2 = spese1.replace('.', ','); document.getElementById('spese_id_col').innerHTML = spese2 + ' €'; totale_tot += spese; totale_tot1 = totale_tot.toFixed(2); totale_tot2 = totale_tot1.replace('.', ','); document.getElementById('colonna4totale').innerHTML = totale_tot2 + ' €'; break; case 'carta di credito': document.getElementById('banca').style.display='none'; document.getElementById('contrassegno').style.display = 'none'; totale_tot = parseFloat(document.getElementById('sub_totale').value); totale_tot += parseFloat(document.getElementById('prezzo_bonus').value); document.getElementById('spese').value = document.getElementById('speseold').value; spese = parseFloat(document.getElementById('spese').value); spese1 = spese.toFixed(2); spese2 = spese1.replace('.', ','); document.getElementById('spese_id_col').innerHTML = spese2 + ' €'; totale_tot += spese; totale_tot1 = totale_tot.toFixed(2); totale_tot2 = totale_tot1.replace('.', ','); document.getElementById('colonna4totale').innerHTML = totale_tot2 + ' €'; break; case 'rimessa diretta': document.getElementById('banca').style.display='none'; document.getElementById('contrassegno').style.display = 'none'; totale_tot = parseFloat(document.getElementById('sub_totale').value); totale_tot += parseFloat(document.getElementById('prezzo_bonus').value); document.getElementById('spese').value == '0'; document.getElementById('spese_id_col').innerHTML = '0,00 €'; totale_tot1 = totale_tot.toFixed(2); totale_tot2 = totale_tot1.replace('.', ','); document.getElementById('colonna4totale').innerHTML = totale_tot2 + ' €'; break; } }

Rispondi quotando