Skip to content

Instantly share code, notes, and snippets.

@martinbean
Created April 1, 2015 11:41
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save martinbean/a1b763088b861bb75179 to your computer and use it in GitHub Desktop.
Save martinbean/a1b763088b861bb75179 to your computer and use it in GitHub Desktop.
jQuery AJAX submit plugin
// Submit a form via AJAX and return the request object
$.fn.ajaxSubmit = function (options) {
var settings = $.extend({
submittingText: 'Submitting...'
}, options);
var form = $(this);
var url = form.attr('action');
var data = form.serialize();
var type = form.attr('method');
var submitButton = form.find('[type="submit"]');
var originalSubmitButtonText = submitButton.text();
var request = $.ajax({
data: data,
dataType: 'json',
type: type,
url: url
});
submitButton.prop('disabled', true).text(settings.submittingText);
request.always(function () {
submitButton.prop('disabled', false);
submitButton.text(originalSubmitButtonText);
});
return request;
}
var request = $('form').ajaxSubmit({
submittingText: 'Adding Record...'
});
request.done(function (response) {
// POST was successful
});
request.fail(function (jqXHR, textStatus, errorThrown) {
// POST failed
// JSON can be found in jqXHR.responseJSON
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment