function validazione(nomeform)
{
//imposto la variabile che segnalerą l'errore
var error=0;
//prendo il contenuto HTML compreso nel mio form
var form_html=document.form1.innerHTML;
//controllo che il browser supporti questo tipo di funzione
if(document.getElementsByTagName)
{
//predispongo un array con tutti i possibili elementi che conterrą il form
var tipo_dati=new Array('input','textarea','select');
for(j=0; j < tipo_dati.length; j++)
{
var x=document.getElementsByTagName(tipo_dati[j]);
for(i=0; i <x.length; i++)
{
var campo=x.item(i).name;
//controllo che il nome del campo sia impostato
if(campo!='')
{
//istruzione uguale per entrambi i browser
var valore=x.item(i).value;
if(navigator.appName.indexOf("Netscape")>=0)
{
var test=x.item(i).attributes;
for(var a=test.length-1; a>=0; a--)
{
switch(test[a].name)
{
case "obbligatorio":
var obbligatorio=test[a].value;
break;
case "msg_errore":
var msg=test[a].value;
break;
case "dato":
var tipo_dato=test[a].value;
break;
case "regex":
var regex=test[a].value;
break;
}
}
}
else
{
var obbligatorio=x.item(i).obbligatorio;
var msg=x.item(i).msg_errore;
var tipo_dato=x.item(i).dato;
var regex=x.item(i).regex;
} if(obbligatorio==1 && valore=='')
{
alert(campo + '-> ' + msg);
error=1;
}
if(obbligatorio==1 && valore!='' && regex=='')
{
if(tipo_dato=='int' && isNaN(valore))
{
alert(campo + '-> ' +msg);
error=1;
}
if(tipo_dato=='char' && !isNaN(valore))
{
alert(campo + '-> ' +msg);
error=1;
}
} if(obbligatorio==1 && valore!='' && regex!='')
{
//prendo il pattern passato dal mio elemento HTML
var pattern=new RegExp(regex);
var result=valore.search(pattern);
if(result!=0)
{
alert(campo + '-> ' +msg);
error=1;
}
}
}//campo
}//for i
}//for j
}
else
{
alert('Il tuo browser non supporta questo tipo di funzione');
return false;
}
//Se tutto č andato a buon fine invia il form
if(error==0)
{
document.forms[nomeform].submit();
}
}//END