jQuery: impedire che gli utenti inviino più volte gli stessi dati nei form in AJAX

jQuery: impedire che gli utenti inviino più volte gli stessi dati nei form in AJAX

In un form AJAX possiamo evitare che l'utente invii due volte gli stessi dati sfruttando jQuery e il web storage.

La soluzione è la seguente:


(function( $ ) {
	$( document ).ready(function() {
        var $form = $( "#form" ),
        	$output = $( "#output" ),
        	storage = window.sessionStorage;
        if( storage.getItem( "email" ) !== null ) {
            // Visualizziamo il valore appena inviato
        	$output.text( "Value: " + storage.getItem( "email" ) );
        }
        $form.on( "submit", function( e ) {
             e.preventDefault();
        	 var email = $( "#email" ).val();
             if( storage.getItem( "email" ) !== null ) {
             	var storedEmail = storage.getItem( "email" );
             	if( email === storedEmail ) {
                    // Il valore è già stato inviato 
             		$output.text( "Value already submitted" );
             		
             	}
             } else {
                // Memorizziamo il valore inserito 
             	storage.setItem( "email", email );
             }

        });

	});

})( jQuery );

Torna su