codice:
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*::::::::::::: www.wedev.it :::::::::::::*/
/*::::::::::::: Libreria per la gestione dei form :::::::::::::*/
/*::::::::::::: a cura di:Max Calamita :::::::::::::*/
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
/*TUTTE LE FUNZIONI DI CONTROLLO RESTITUISCONO TRUE O FALSE QUINDI SE SI IMPOSTANO ALL'INVIO DEL FORM (mettendo: return funzione) IL FORM NON VERRA' INVIATO SE IL CONTROLLO NON VERRA' SODDISFATTO.*/
/*LE FUNZIONI DI RECUPERO PER ORA NON RESTITUISCONO VALORI QUINDI PER VISUALIZZARNE UNO BISOGNA ATTIVARLE RACCHIUDENDOLE TRA ALERT() QUINDI alert(funzione scelta).*/
var submitted = false;
var error = false;
var error_message = "";
if(!window.WDL) WDL = {};
WDL.form =
{
/*
questa funzione serve per settare le varie proprietà del form va richiamata così:
WDL.form.setta('nome del forum','il metodo di invio(post o get)','cosa deve fare','il tipodi codifica','il target dove deve agire')
*/
setta : function(nome,metodo,azione,enctype,bersaglio){
document[nome].method = metodo;
document[nome].action = azione;
document[nome].encoding = enctype;
document[nome].target = bersaglio;
},
/*
questa funzione serve per recuperare le varie proprietà del form va richiamata così:
WDL.form.recupera('nome del forum')
*/
recupera : function(nome){
//proprieta=new Array(document[nome].method,document[nome].action,document[nome].encoding,document[nome].target,document[nome].length)
prorpieta=new Array();
proprieta.metodo=document[nome].method;
proprieta.azione=document[nome].action;
proprieta.enctype=document[nome].encoding;
proprieta.bersaglio=document[nome].target;
proprieta.elementi=document[nome].length;
return proprieta;
},
/*
questa funzione serve per recuperare le varie proprietà di un campo va richiamata così:
WDL.form.recuperaCampo('nome del forum','nome del campo','tipo')
dove tipo è:
valore -> valore del campo
lunghezza -> lunghezza dei caratteri del campo
parole -> conteggio parole del campo(se uno mette li spazi dove devono stare perchè se si scrive "ciao,come va") lo script conta 2 parole ciao,come è una e l'altra è va
*/
recuperaCampo : function(nome,campo,tipo){
controllo=new Array();
controllo.valore= document[nome][campo].value;
controllo.lunghezza= document[nome][campo].value.length; //lettere
controllo.parole= document[nome][campo].value.split(" ").length; //parole
return(controllo[tipo]);
},
/*
questa funzione serve per fare controlli semplici sui campi va richiamata così:
WDL.form.controlloStato('nome del forum','nome del campo','tipo')
dove tipo è:
no_vuoto -> verifica che ci sia almeno un carattere
selezionato -> verifica se è cliccato
*/
controlloStato : function(nome,campo,tipo) {
controllo=new Array();
controllo.no_vuoto= document[nome][campo].value!='';
controllo.selezionato= document[nome][campo].checked;
return(controllo[tipo]);
},
/*
questa funzione serve per fare controlli standard con le regexp sui campi va richiamata così:
WDL.form.controlloContenuto('nome del forum','nome del campo','tipo')
dove tipo è:
numero -> verifica la presenza di un numero
nonumero -> verifica l'assenza di un numero
minuscolo -> verifica che la lettera è minuscolo
maiuscolo -> verifica che la lettera è maiuscolo
carattere -> verifica se è una lettera
alfanum -> verifica che ci siano solo numeri o lettere
spazi -> verifica la presenza di spazi
nospazi -> verifica l'assenza di spazi
speciale -> verifica la presenza di caratteri speciali
nospeciale -> verifica l'assenza di caratteri speciali
nlinea -> verifica la presenza di una linea che manda a capo(il carattere ottibile con il tasto invio della tastiera)
nonlinea -> verifica l'assenza di una linea che manda a capo(il carattere ottibile con il tasto invio della tastiera)
nome -> verifica se la parola inserita è un nome quindi la prima lettera maiuscola e le altre minuscole
fiscale -> verifica se è un formato valido di codice fiscale
urlst -> verifica che l'url inserito è di primo livello (www.qualcosa.qualcosa)
urlpr -> verifica la presenza di due punti all'interno della parola
mail -> verifica se è un corretto formato di e-mail
*/
controlloContenuto : function(nome,campo,tipo) {
regarray=new Array();
regarray["numero"] = /^[\d]+$/;
regarray["nonumero"] = /^[\D]+$/;
regarray["minuscolo"] = /^[\a-z]+$/;
regarray["maiuscolo"] = /^[\A-Z]+$/;
regarray["carattere"] = /^[\a-zA-Z]+$/;
regarray["alfanum"] = /^[\w]+$/;
regarray["spazi"] = /^[\s]+$/;
regarray["nospazi"] = /^[\S]+$/;
regarray["speciale"] = /^[\\\/\\$\.\+\?\*\|\^\-\[\]\(\)\_\@\%\&\£]+$/;
regarray["nospeciale"] = /^[^\\\/\\$\.\+\?\*\|\^\-\[\]\(\)\_\@\%\&\£]+$/;
regarray["nlinea"] = /^[\n]+$/;
regarray["nonlinea"] = /^[.]+$/;
regarray["nome"] = /^[A-Z][a-z]+$/;
//regarray["fiscale"] = /^[A-Z]{6}[0-9]{2}[A-Z][\w]{4}[a-Z]+$/;
regarray["urlst"] = /^www\.[a-z]+\.[a-z]{2,4}$/;
regarray["urlpr"] = /^[a-z]+\.[a-z]+\.[a-z]+$/;
regarray["mail"] = /^[\w\.\-\_]+\@[\w\.\-\_]+\.[\w]{2,4}$/;
return(regarray[tipo].test(document[nome][campo].value));
},
/*
questa funzione serve per fare controlli sulla quantità di parole nei campi va richiamata così:
WDL.form.controlloLimitante('nome del forum','nome del campo','tipo','min','max')
dove min e max sono i valori della lunghezza della parola/stringa
dove tipo è:
numero -> limita un numero
alfanumerico -> limita un numero o una lettera
minuscolo -> limita una lettera minuscola
maiuscolo -> limita una lettera maiuscola
lettera -> limita una lettera
carattere -> limita una stringa(il conteggio è compreso di spazi)
*/
controlloLimitante : function(nome,campo,tipo,minimo,massimo) {
controllo=new Array();
controllo.numero = /^\d{minimo,massimo}$/;
controllo.alfanumerico = /^\w{minimo,massimo}$/;
controllo.minuscolo = /^[a-z]{minimo,massimo}$/;
controllo.maiuscolo = /^[A-Z]{minimo,massimo}$/;
controllo.lettere = /^[a-zA-Z]{minimo,massimo}$/;
controllo.carattere = /^[.]{minimo,massimo}$/;
return(controllo[tipo].test(document[nome][campo].value));
},
/*
questa funzione controlla se il contenuto del campo è uguale a quello predefinito va richiamata così:
WDL.form.controlloUguaglianza('nome del forum','nome del campo','stringa')
dove stringa è il valore predefinito
*/
controlloUguaglianza : function(nome,campo,stringa) {
return document[nome][campo].value==stringa? true:false;
}
}
Poi, all'interno del mio form, ho inserito questo JavaScript