Skip to content

Instantly share code, notes, and snippets.

@RimonEkjon
Forked from jamesarosen/jquery-form-ajax.js
Created August 26, 2014 02:53
Show Gist options
  • Save RimonEkjon/40b5f08b70f9b444282b to your computer and use it in GitHub Desktop.
Save RimonEkjon/40b5f08b70f9b444282b to your computer and use it in GitHub Desktop.
JQuery- ajax-form-submit
function buildSubmitHandler(ajaxOptions) {
function submitViaAJAX(event) {
var data = $.extend( {}, ajaxOptions.data, $form.serialize() ),
options = $.extend({}, {
url: $form.attr('action'),
type: $form.attr('method'),
}, ajaxOptions, { data: data });
$.ajax(options)
.done( $.proxy($form.trigger, $form, 'submitdone') )
.fail( $.proxy($form.trigger, $form, 'submitfail') )
.always( $.proxy($form.trigger, $form, 'submitalways') )
return false;
};
return submitViaAJAX;
}
jQuery.fn.submitViaAJAX = function(ajaxOptions) {
return this.each(function(i, form) {
$(form).submit( buildSubmitHandler(ajaxOptions) );
});
};
<form action="/foo" method="post" id='my_form'>
<label>Name: <input name="name" /></label>
</form>
<script type="text/javascript">
$('#my_form')
.submitViaAJAX()
.bind('submitdone', function(ajaxResponse) {
alert('Submitted!');
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment