ciao,
ho un problemino con questo script.
i controlli dei form funzionano correttamente se messi in una pagina con un form standard.
il mio problema è questo nella mia pagina c'è un link che mi richiama la funzione javascript vai.
devo fare in modo che controlli la quantità che sia un numero decimale o intero.
nella mia pagina ci avrò più text di form chiamati quantita+un progressivo.
alla mia funzione vai passo il numero di riga.
dentro a questo ho pensato di richiamare la vunzione che mi fa i controlli del form.
ma non funziona perchè non passa alla funzione Validate il nome corretto del form.
il form si chiama passa.
spero di essere stata abbastanza chiara.
grazie
manu
----------------------------------------------------------------------
<script language="JavaScript">
//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;
}
//funzione principale di convalida
function Validate(quantita)
{ err=false;
if(!numdec(document.passa.quantita.value))
error(document.passa.quantita,"Inserisci un numero");
return !err; /*true se non ci sono errori*/
}
function vai(dett,riga,ordine,azienda)
{
commento = "commento" + riga;
quantita = "quantita" + riga;
if(Validate(quantita))
url="insupcanord.php?id_cliente="+azienda+"&id_ord ine="+ordine+"&id_dettaglio="+dett+"&commento="+do cument.passa[commento].value+"&quantita="+document.passa[quantita].value;
document.location.href = url;
}
</script>