Skip to content

Instantly share code, notes, and snippets.

@teisman
Created September 1, 2014 18:59
Show Gist options
  • Save teisman/1960b770ab78ce555481 to your computer and use it in GitHub Desktop.
Save teisman/1960b770ab78ce555481 to your computer and use it in GitHub Desktop.
(function ($, undefined) {
if ($.forms !== undefined) {
$.error("forms.js has already been loaded.");
}
var forms;
$.forms = forms = {
href: function (element) {
return element.attr('href');
},
formElements: function (form, selector) {
return form.is('form') ? $(form[0].elements).filter(selector) : form.find(selector);
},
handleRemote: function (element) {
var method, url, data, dataType, options, elCrossDomain, crossDomain;
method = element.attr('method');
url = element.attr('action');
data = element.serializeArray();
dataType = element.data('type');
elCrossDomain = element.data('cross-domain');
crossDomain = elCrossDomain === undefined ? null : elCrossDomain;
url = forms.href(element);
options = {
type: method || 'GET',
data: data,
dataType: dataType,
success: function (data, status, xhr) {
element.trigger('ajax:success', [data, status, xhr]);
},
complete: function (data, status) {
element.trigger('ajax:complete', [data, status]);
},
error: function (xhr, status, error) {
element.trigger('ajax:error', [xhr, status, error]);
},
crossDomain: crossDomain
};
if (url) {
options.url = url;
}
return $.ajax(options);
}
};
}) ( jQuery );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment