Un saluto a tutti,

vorrei modificare questo script per preventivi online in modo che possa funzionare con gli euro. Ho provato a fare alcune prove, seguendo precedenti post, senza riuscire a risolvere il problema: mi considera e somma solo gli interi.

Grazie_datalight

================================================== ============


<HTML>
<HEAD>
<TITLE>Preventivi interattivi on-line</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!-- // Nascondo lo script ai vecchi browser

// Funzione che crea un array contenente n elementi

function MakeArray(n) {
this.length = n;
for(var i = 1; i <= n; i++) this[i] = 0;
return this
}

// Funzione che calcola l'IVA del 19% e la somma al totale

function tassalo(num) {

// Se l'iva e' selezionata (checked) la calcolo

if(num) {
if(document.preventivo.TASSE.checked) {
document.preventivo.quantoiva.value=Math.round(19* num)/100;
}
else document.preventivo.quantoiva.value=0;
}

// A questo punto faccio il totale.

var temp=0;
if(document.preventivo.costotot.value.length != 0) {
temp+=parseFloat(document.preventivo.costotot.valu e);
}
if(document.preventivo.quantoiva.value.length != 0) {
temp+=parseFloat(document.preventivo.quantoiva.val ue);
}
document.preventivo.costototiva.value=temp;
}

// Questa funzione fa la somma del costo dei prodotti
// che sono stati selezionati.

function calcola(sel) {

// Crea un array in cui metto i prezzi passati come argomenti.

var Prezzi_Array = new MakeArray(calcola.arguments.length);
for(var i=1; i<calcola.arguments.length; i++) {
Prezzi_Array[i-1] = parseInt(calcola.arguments[i]);
}

// Prendo l'ultimo carattere del nome dell'elemento che ha
// chiamato la funzione (quanti0, quanti1 daranno 0, 1 ecc.)
// per sapere quale selettore è stato cambiato.

var line=sel.name.charAt(sel.name.length-1);

// Ora se il quantiX di tale linea ha una lunghezza, significa che c'e'
// un valore scritto dentro. Per accaderci si usa "quanti"+line che
// ci dara' quanti0, quanti1 ecc.

if(document.preventivo["quanti"+line].value.length != 0) {

// Controllo che sia stato scritto un numero (se non è un numero
// risultera' un NaN, ovvero Not a Number), e che sia diverso da
// zero. Se non è un numero, visualizzo una finestra di alert.

var quanti=parseInt(document.preventivo["quanti"+line].value);
if((quanti == 0) || isNaN(quanti)) {
alert("La quantita' alla linea "+(++line)+" non e' un numero!");
return;
}

var pprez=0;

// Trovo il prezzo del prodotto selezionato.

pprez = Prezzi_Array[document.preventivo["prodotto"+line].selectedIndex];

// Controllo che sia stato selezionato qualcosa, in caso contrario
// visualizzo una finestra di alert con l'errore.

if((pprez == 0) || isNaN(pprez)) {
alert("Il prodotto alla linea "+(++line)+" non e' stato scelto!");
return;
}

// Scrivo il prezzo singolo e il totale

document.preventivo["prodprezzo"+line].value = pprez;
document.preventivo["prodtot"+line].value = eval(pprez*quanti);
}

var i = 0;
var total = 0;

// Calcolo il costo totale sommanto i totali dei singoli prodotti

while(document.preventivo["prodtot"+i]) {
if(document.preventivo["prodtot"+i].value.length != 0) {
total+=parseInt(document.preventivo["prodtot"+i].value);
}
i++;
}

document.preventivo.costotot.value = total;

// Calcoliamo l'iva eventuale e il totale ivato.

tassalo(total);
}

// Fine della parte nascosta. -->
</SCRIPT></HEAD>
<BODY>
<CENTER><H3>Preventivi interattivi on-line</H3>
<FORM NAME="preventivo"><TABLE>
<TR><TD ROWSPAN=8><PRE> </PRE></TD>
<TH ALIGN=RIGHT>Quant.</TH><TH ALIGN=center>Prodotto</TH>

<TH ALIGN=center>Prezzo</TH><TH ALIGN=center>Totale</TH>
<TH ROWSPAN=8><PRE> </PRE></TD></TR>
<TR><TD VALIGN=TOP ALIGN=RIGHT>
<INPUT TYPE=TEXT NAME="quanti0" value="1" SIZE=3 onChange='calcola(this, "5.50", "10.25", "9.00", "15.75");'>
</TD><TD VALIGN=TOP>
<SELECT NAME="prodotto0" onChange='calcola(this, "5.50", "10.25", "9.00", "15.75");'>
<OPTION>prodotto 1 <OPTION>prodotto 2 <OPTION>prodotto 3 <OPTION>prodotto 4
<OPTION SELECTED>seleziona un prodotto</SELECT></TD>

<TD VALIGN=TOP><INPUT TYPE=TEXT NAME="prodprezzo0" size=8 onFocus="this.blur();"></TD>
<TD VALIGN=TOP><INPUT TYPE=TEXT NAME="prodtot0" size=8 onFocus="this.blur();"></TD>
</TR><TR><TD VALIGN=TOP ALIGN=RIGHT>
<INPUT TYPE=TEXT NAME="quanti1" value="1" SIZE=3 onChange='calcola(this, "5.50", "10.25", "9.00", "15.75");'>
</TD><TD VALIGN=TOP>
<SELECT NAME="prodotto1" onChange='calcola(this, "5.50", "10.25", "9.00", "15.75");'>
<OPTION>prodotto 1 <OPTION>prodotto 2 <OPTION>prodotto 3 <OPTION>prodotto 4
<OPTION SELECTED>seleziona un prodotto</SELECT></TD>

<TD VALIGN=TOP><INPUT TYPE=TEXT NAME="prodprezzo1" SIZE=8 onFocus="this.blur();"></TD>
<TD VALIGN=TOP><INPUT TYPE=TEXT NAME="prodtot1" SIZE=8 onFocus="this.blur();"></TD>
</TR><TR><TD VALIGN=TOP ALIGN=RIGHT>
<INPUT TYPE=TEXT NAME="quanti2" value="1" SIZE=3 onChange='calcola(this, "5.50", "10.25", "9.00", "15.75");'>
<TD VALIGN=TOP>
<SELECT NAME="prodotto2" onChange='calcola(this, "5.50", "10.25", "9.00", "15.75");'>
<OPTION>prodotto 1 <OPTION>prodotto 2 <OPTION>prodotto 3 <OPTION>prodotto 4
<OPTION SELECTED>seleziona un prodotto</SELECT></TD>

<TD VALIGN=TOP><INPUT TYPE=TEXT NAME=prodprezzo2 size=8 onFocus="this.blur();"></TD>
<TD VALIGN=TOP><INPUT TYPE=TEXT NAME=prodtot2 size=8 onFocus="this.blur();"></TD>
</TR><TR><TD></TD><TD></TD><TH>Costo</TH>
<TD><INPUT TYPE=TEXT NAME=costotot SIZE=8 onFocus="this.blur();"></TD>
</TR><TR><TH COLSPAN=2 ALIGN=RIGHT>Ivato
<INPUT TYPE=checkbox name=TASSE onClick="tassalo(document.preventivo.costotot.valu e);">
</TH><TH>Iva</TH>
<TD><INPUT TYPE=TEXT NAME=quantoiva SIZE=8 onFocus="this.blur();"></TD>

</TR><TR><TD></TD><TD></TD></TR><TR><TD></TD><TD></TD><TH>Totale</TH>
<TD><INPUT TYPE=TEXT NAME=costototiva SIZE=8 onFocus="this.blur();"></TD>
</TR></TABLE></FORM></CENTER>
</BODY>
</HTML>

================================================== ============