Possiamo usare il session storage con jQuery per evitare l'invio di valori duplicati nei form.
Dato il seguente form:
<form action="#" method="post" id="form">
	<div>
		<input type="text" name="email" id="email" placeholder="Email" />
	</div>
	<p><input type="submit" name="submit" id="submit" value="Submit" /></p>
	<div id="output"></div>
</form>
La soluzione è la seguente:
(function( $ ) {
$( document ).ready(function() {
var $form = $( "#form" ),
$output = $( "#output" ),
storage = window.sessionStorage;
if( storage.getItem( "email" ) !== null ) {
$output.text( "Value: " + storage.getItem( "email" ) );
}
$form.on( "submit", function( e ) {
var email = $( "#email" ).val();
if( storage.getItem( "email" ) !== null ) {
var storedEmail = storage.getItem( "email" );
if( email === storedEmail ) {
$output.text( "Value already submitted" );
e.preventDefault();
}
} else {
storage.setItem( "email", email );
}
});
});
})( jQuery );