In jQuery è semplice impedire un nuovo invio di un form durante una richiesta AJAX.
La soluzione è la seguente:
$( "#contact-form" ).on( "submit", function( e ) {
e.preventDefault();
var $form = $( this );
var data = $form.serialize();
$form.find( ":submit" ).attr( "disabled", "disabled" );
$.post( "/ajax/contacts", data, function( response ) {
$form.find( ":submit" ).removeAttr( "disabled" );
});
});