Non sono rari i casi in cui è desiderabile impedire l'invio continuo di un modulo da parte di un utente. Grazie a questo script è possibile implementare facilmente una funzione che blocca l'invio dei dati dopo un certo numero di volte, un numero che ovviamente possiamo stabilire noi stessi. Lo script si basa sui cookie per tenere traccia degli invii da parte di un singolo utente. Proprio per questo motivo l'esempio allegato non funziona in locale: va provato caricando la pagina da un server web.
- esempio.htm
## 1: LA SEZIONE JAVASCRIPT
La lunga sezione Javascript va inserita all'interno della sezione <head></head> della pagina. È composta da diverse funzioni combinate tra di loro. Qui daremo un'occhiata a quelle più importanti e alle parti dello script da personalizzare per adattarlo alle nostre esigenze. Iniziamo allora dalla variabile principale:
var maxSubmits = 2
Non è difficile comprendere a cosa serve. Da qui impostiamo il numero massimo di invii consentiti ad un utente.
Tutte le altre funzioni sono quelle classiche usate per scrivere e leggere cookies. Di default il cookie creato ha una durata di 999 giorni. Per modificare la durata basterà intervenire su questa variabile:
var days = 999;
## 2: RICHIAMO INTERNO ALLA PAGINA WEB
Il richiamo allo script non può che avvenire da un form:
<form action="" method="post" onsubmit="return validate(this)">
nome: <input type=text value="test" name="test">
<input type=submit value="invia">
</form>
Per l'esattezza, dovremo inserire al livello del tag <form> un richiamo alla funzione 'validatè. Lo facciamo tramite l'evento onsubmit, con cui si effettua la verifica al momento dell'invio dei dati. Se è stato superato il limite di invii, un alert (definito nello parte Javascript) avvertirà l'utente e il form non sarà inviato.