I've implemented this 'locksubmit' plugin http://blog.leenix.co.uk/2009/09/jquery-plugin-locksubmit-stop-submit.html where it cha开发者_如何学Pythonnges the display state of the button to disabled. I then want the form to be delayed by a few seconds before posting to the form URL.
What would I have to add in or modify to delay the form "post" once the user has clicked the submit button?
Thanks!
Cancel the default form submit behaviour, and start a timeout at the same time:
$('form').submit(function (e) {
var form = this;
e.preventDefault();
setTimeout(function () {
form.submit();
}, 1000); // in milliseconds
});
This should be compatible with the locksubmit plugin.
See a demo here: http://jsfiddle.net/7GJX6/
I think this is what you're looking for - modify lockSubmit()
as such:
jQuery(':submit').lockSubmit(function(){
setTimeout(5e3); // fancy 5 seconds
});
And with options object:
jQuery(':submit').lockSubmit({
submitText: "Please wait",
onAddCSS: "submitButtons",
onClickCSS: "submitButtonsClicked"
},function(){
setTimeout(5e3);
}));
Basically javascript has to wait for all arguments to be resolved before executing the body. By setting timeout during the argument we delay the return.
精彩评论