I’m using jquery $.post when submitting a form. I want to disable the button for like 5 seconds after it has been clicked to avoid multiple submission of the form.
here’s what I’ve done for now:
$('#btn').click(function(){
$.post(base_url + 'folder/controller/function',$('#formID').serialize(),function(data){
$('#message').slideDown().html('<span>'+data+'</span>');
});
});
I’ve used fadeIn and fadeOut before, but still it doesn’t work when I tested it clicking the button rapidly. What should I do to achieve what I wanted to happen?
You can do what you wanted like this:
or you can use jQuery’s
.complete()method which is being executed after the ajax receives a response:edit: this is an example with 3 seconds server-side response delay
Edit
Since even the answer is 8 years old, but still getting attention and jQuery is getting less popular I think it’s worth adding example without jQuery