Chiedo scusa, non mi ero accorto della formattazione del codice precedente. Eccolo formattato meglio!
codice HTML:
<!DOCTYPE HTML>
<html>
<head>
<title>CalcoloVasoEsp</title>
<meta charset="utf-8">
<script type="text/javascript">
var c1,c2,c3,c4,c5;
var v1,v2,v3,v4,v5;
function calcola(){
if (v1 != c1.value) v1 = valNum(c1);
if (v2 != c2.value) v2 = valNum(c2);
if (v3 != c3.value) v3 = valNum(c3);
if (v4 != c4.value) v4 = valNum(c4);
c5.value=[v1*v2]/[1-[[1+v3]/[1+v4]]];
}
// Formatta il value del campo come valore numerico e lo restituisce
function valNum(c){
return +(c.value = c.value.replace(",",".").match(/\d*[.]?\d*/));
}
// Al caricamento della pagina
window.onload = function(){
// I campi interessati al calcolo
c1 = document.table.campo1;
c2 = document.table.campo2;
c3 = document.table.campo3;
c4 = document.table.campo4;
c5 = document.table.campo5;
// Assegno un handler per richiamare la funzione calcola() automaticamente quando avviene una qualsiasi modifica dei valori nei campi
c1.onchange = c1.onkeyup = c1.onpaste = c1.oninput
= c2.onchange = c2.onkeyup = c2.onpaste = c2.oninput
= c3.onchange = c3.onkeyup = c3.onpaste = c3.oninput
= c4.onchange = c4.onkeyup = c4.onpaste = c4.oninput
= calcola;
// Se serve, puoi eseguire il calcolo ad apertura pagina per aggiornare il risultato nel caso i campi siano popolati in qualche modo preventivamente
calcola();
}
</script>
</head>
<body>
<table action="#" method="post" name="table">
<tr>
<td>Descrizione</td>
<td>Valore</td>
<td>Unità di misura</td>
</tr>
<tr class="Descrizione">
<td class="nome">Contenuto acqua</td>
<td><input type="text" name="campo1" value="600"></td>
<td class="Valore">litri</td>
</tr>
<tr class="Descrizione">"
<td class="nome">Coefficiente di dilatazione</td>
<td><input type="text" name="campo2" value="0,0421"></td>
<td class="Valore">n/a</td>
</tr>
<tr class="Descrizione">
<td class="nome">Pressione di precarica</td>
<td><input type="text" name="campo3" value="1"></td>
<td class="Valore">bar</td>
</tr>
<tr class="Descrizione">
<td class="nome">Pressione di taratura valvola di sicurezza</td>
<td><input type="text" name="campo4" value="3"></td>
<td class="Valore">bar</td>
</tr>
<tr>
<td>Totale</td>
<td><input readonly type="text" name="campo5" value=""></td>
<td class="Valore">litri</td>
</tr>
</table>
</body>
</html>