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:&nbsp;<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:&nbsp;&nbsp;       <!-- 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 &euro;</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 &euro;</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 &euro;</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 &euro;</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 &euro;<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 &euro;<input name="prezzo_bonus" id="prezzo_bonus" type="hidden" value="13.00" >
</div>
<div class="colonna3">
1</div>
<div class="colonna4"  >
13,00 &euro;</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 &euro;<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 &euro;<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 &euro;</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 + ' &euro;'; 
   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 + ' &euro;';
        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 + ' &euro;'; 
                                  totale_tot += spese;
                                                                     totale_tot1 = totale_tot.toFixed(2);
                                 totale_tot2 =  totale_tot1.replace('.', ',');
                                  document.getElementById('colonna4totale').innerHTML = totale_tot2 + ' &euro;';
        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 + ' &euro;';
    
    
                                  totale_tot += spese;
                                                                     totale_tot1 = totale_tot.toFixed(2);
                                 totale_tot2 =  totale_tot1.replace('.', ',');
                                  document.getElementById('colonna4totale').innerHTML = totale_tot2 + ' &euro;';
        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 &euro;';            
                                                    
                                   totale_tot1 = totale_tot.toFixed(2);
                                 totale_tot2 =  totale_tot1.replace('.', ',');
                                  document.getElementById('colonna4totale').innerHTML = totale_tot2 + ' &euro;';
        break;
    
} 
 
                  }