codice:
function controllo(){
for(i=0;i<document.moduloVendita.length;i++){
if(document.moduloVendita.elements[i].name.substr(0,4)=="qua_"){
quantitaTemp = document.moduloVendita.elements[i].value;
}
else{
if(document.moduloVendita.elements[i].name.substr(0,4)=="cad_"){
stringa = new String(document.moduloVendita.elements[i].value);
stringa = stringa.replace(",",".");
if(isNaN(stringa)){
alert("Attenzione, il valore "+document.moduloVendita.elements[i].value+" non è un numero valido. Usare la virgola per separare i decimali e non usare punti per le migliaia");
return false;
}
}
else if (document.moduloVendita.elements[i].name.substr(0,4)=="quc_"){
if(isNaN(document.moduloVendita.elements[i].value)){
alert("Attenzione, il valore "+document.moduloVendita.elements[i].value+" non è un numero valido.");
return false;
}
if(parseInt(document.moduloVendita.elements[i].value) > parseInt(quantitaTemp)){
alert("Non è possibile concludere la vendita perchè per uno dei prodotti acquistati risultano in magazzino meno scorte di quanto venduto");
return false;
}
}
else if(document.moduloVendita.elements[i].name.substr(0,4)=="tot_"){
stringa = new String(document.moduloVendita.elements[i].value);
stringa = stringa.replace(",",".");
if(isNaN(stringa)){
alert("Attenzione, il valore "+document.moduloVendita.elements[i].value+" non è un numero valido. Usare la virgola per separare i decimali e non usare punti per le migliaia");
return false;
}
}
}
}
return true;
}
due suggerimenti di lettura:
- visto che devo scorrere tutti i campi, eseguo un if sulle prime 4 lettere del nome cosi da fare i controlli.
L'ordine in cui sono negli IF è lo stesso che hanno nella form, per cui non c'è il rischio che quantitaTemp venga confrontata con un elements del rigo superiore.
- uso il replace perchè all'utente viene piu spontaneo inserire i decimali con la virgola anzichè con il punto