function RestForm(element) { this.element = element; this.settings = { url: element.getAttribute('action'), method: element.getAttribute('method'), disableSubmit: true } var form = this; this.element.addEventListener("submit", function(e) { e.preventDefault(); form.clear_errors(); form.pre_save(function(r) { form.save_form(r); }, function(err) { form.show_errors(err); }); return false; }); } RestForm.prototype.pre_save = function(success, failure) { success(); } RestForm.prototype.clear_errors = function() { var errors = this.element.querySelectorAll(".error"); for(var i=0;i= 200 && response.status <= 204) { form.oncomplete(result); } else if (response.status > 399 && response.status < 500) { form.oncomplete({error:result}); } else if (response.status >= 500) { form.oncomplete({error:result}); } }); }); } function serializeArray(form) { var field, l, s = []; if (typeof form == 'object' && form.nodeName == "FORM") { var len = form.elements.length; for (var i=0; i