delay form submit

by Laurens Maneschijn

HTML

<form>
    <input type="submit"/>
</form>
<div id="msg"></div>
First submit will be blocked, and after a second another submit is triggered that is allowed to pass.

JavaScript

$(document).ready(function(){
    $(document).on('submit','form',function(e,extraParameters){
        console.log('form submit event');
//      console.log(extraParameters,e);
        if( ! (extraParameters && extraParameters.gosubmit)){
            msg('first submit event: delayed');
        	e.preventDefault();
            setTimeout(function(){
                $(e.target).trigger('submit',{'gosubmit':1});
            }, 1000);
            return;
        }else{
        	msg('second submit event: passthru');
            // no e.preventDefault() (or (deprecated) return false): submit continues as usual.
        }
    });
});
function msg(msg){
    console.log(msg);
    $('#msg').text(msg);
}