ciao, ho ancora un problemino con javascript.
nel mio form ci sono tante text chiamate quantita e numero progressivo.
devo fare in modo di controllarle una per una perchè al loro interno devono esserci solo numeri.
ho provato a farlo e sono riuscita ma il problema sta che quando clicco sul pulsante dell'ok della window.alert poi non mi fa correggiere il dato e passa alla pagina sucessiva.
----------------------------------------------------------------------
questo è il codice:
//variabile globale usata come flag di errore
var err=false;
//funzione per controllare la lunghezza che non sia minore al parametro len
function lungok(item,len)
{ return(item.length>=len);}
//funzione per controllare che nel campo di testo ci sia almeno un carattere
function txtok(item,l)
{ var valido=false;
var i=0;
if (l!=0 && lungok(item,l)) return false;
while (item.length>i && !valido)
{ if(item.charAt(i) !=" ")
valido=true;
i++;
}
return (valido);
}
//funzione per controllare se è un numero intero
function numint(item)
{ var valido=false;
var punto=item.indexOf('.',0);
if (txtok(item) && !isNaN(item) && punto==-1) return true;
else return false;
}
//funzione per controllare se è un numero decimale (ex: 78.9 ==> bisogna utilizzare il punto)
function numdec(item)
{ var valido=false;
var punto=item.indexOf('.',0);
var doppiopunto=item.indexOf('.',punto+1);
var a=parseInt(item.length);
var b=parseInt(punto+1);
var decimali=a-b;
if (numint(item)) return true;
else
{ if (txtok(item) && !isNaN(item) && (decimali<=3) && (doppiopunto==-1)) return true;
else return false;
}
}
//visualizza un avviso di errore
function error(item,text)
{//interruzione appena abbiamo trovato un errore
if(err)return;
window.alert(text);
item.select();
item.focus();
err=true;
}
function controllo(righe)
{
var i=0;
while (i<=righe-1)
{
quantita = "quantita" + i;
err=false;
if(!numdec(document.passa.elements[quantita].value))
error(document.passa.elements[quantita],"Inserisci un numero");
i++;
return !err; /*true se non ci sono errori*/
}
}
---------------------------------------------------------------------
dove sbaglio?
grazie
Manu