L'ho semplificato un pò! Ho tolto i case e messo una funzione (segnata in rosso) che però non viene del tutto rispettata
codice:
<script language="javascript">
function comp_originale_<%=rs("cat_comp")%>(nome, valore) {
for (i=0;i<document.Form_Controllo_Prezzo[nome].length;i++){
if (document.Form_Controllo_Prezzo[i].checked==true) {
originale = valore;
break
} else {
originale = document.Form_Controllo_Prezzo[i].prezzo;
}
}
}
function segno(nome, indice){
var diff = parseInt(document.Form_Controllo_Prezzo[nome][indice].prezzo)-parseInt(originale);
if (diff >= 0){
str_diff = "[+"+(Math.abs(parseInt(document.Form_Controllo_Prezzo[nome][indice].prezzo)-parseInt(originale)))+" euro]";
} else if (diff == 0){
str_diff = "";
} else {
str_diff = "[-"+(Math.abs(parseInt(document.Form_Controllo_Prezzo[nome][indice].prezzo)-parseInt(originale)))+" euro]";
}
}
function scrivivalore_<%=rs("cat_comp")%>(fieldvalue, nome){
for (i=0;i<document.Form_Controllo_Prezzo[nome].length;i++){
if (document.getElementById('primo_<%=rs("cat_comp")%>')){
segno(nome, 0)
document.getElementById('primo_<%=rs("cat_comp")%>').innerHTML = str_diff;
}if (document.getElementById('secondo_<%=rs("cat_comp")%>')){
segno(nome, 1)
document.getElementById('secondo_<%=rs("cat_comp")%>').innerHTML = str_diff;
}if (document.getElementById('terzo_<%=rs("cat_comp")%>')){
segno(nome, 2)
document.getElementById('terzo_<%=rs("cat_comp")%>').innerHTML = str_diff;
}if (document.getElementById('quarto_<%=rs("cat_comp")%>')){
segno(nome, 3)
document.getElementById('quarto_<%=rs("cat_comp")%>').innerHTML = str_diff;
}if (document.getElementById('quinto_<%=rs("cat_comp")%>')){
segno(nome, 4)
document.getElementById('quinto_<%=rs("cat_comp")%>').innerHTML = str_diff;
}if (document.getElementById('sesto_<%=rs("cat_comp")%>')){
segno(nome, 5)
document.getElementById('sesto_<%=rs("cat_comp")%>').innerHTML = str_diff;
}if (document.getElementById('settimo_<%=rs("cat_comp")%>')){
segno(nome, 6)
document.getElementById('settimo_<%=rs("cat_comp")%>').innerHTML = str_diff;
}if (document.getElementById('ottavo_<%=rs("cat_comp")%>')){
segno(nome, 7)
document.getElementById('ottavo_<%=rs("cat_comp")%>').innerHTML = str_diff;
}if (document.getElementById('nono_<%=rs("cat_comp")%>')){
segno(nome, 8)
document.getElementById('nono_<%=rs("cat_comp")%>').innerHTML = str_diff;
}
}
}
</script>
Non viene rispettata la condizione per la quale se la differenza è pari a 0 non si debba scrivere niente a video! Le altre due però vengono considerate :master: