Files
edx-platform/lms/static/js/form.ext.js

45 lines
1.3 KiB
JavaScript

(function($, undefined) {
var form_ext;
$.form_ext = form_ext = {
ajax: function(options) {
return $.ajax(options);
},
handleRemote: function(element) {
var method = element.attr('method');
var url = element.attr('action');
var data = element.serializeArray();
var options = {
type: method || 'GET',
data: data,
dataType: 'text json',
success: function(data, status, xhr) {
element.trigger("ajax:success", [data, status, xhr]);
},
complete: function(xhr, status) {
element.trigger("ajax:complete", [xhr, status]);
},
error: function(xhr, status, error) {
element.trigger("ajax:error", [xhr, status, error]);
}
}
if(url) { options.url = url; }
return form_ext.ajax(options)
},
CSRFProtection: function(xhr) {
var token = $.cookie('csrftoken');
if (token) xhr.setRequestHeader('X-CSRFToken', token);
}
}
$.ajaxPrefilter(function(options, originalOptions, xhr){ if ( !options.crossDomain ) { form_ext.CSRFProtection(xhr); }});
$(document).delegate('form', 'submit', function(e) {
var form = $(this),
remote = form.data("remote") !== undefined;
if(remote) {
form_ext.handleRemote(form);
return false;
}
});
})(jQuery);