due suggerimenti di lettura: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; }
- 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