Skip to content

Instantly share code, notes, and snippets.

@goldhand
Created February 18, 2016 14:53
Show Gist options
  • Save goldhand/e29cf4edf562a34117f1 to your computer and use it in GitHub Desktop.
Save goldhand/e29cf4edf562a34117f1 to your computer and use it in GitHub Desktop.
Simple jquery handler for django json reponses
const handleAjaxForm = (form) => {
$.ajax({
url: form.action,
dataType: 'html',
type: 'POST',
data: $(form).serialize(),
success: data => {
$(form.parentElement).fadeOut();
setTimeout(() => $('#success-message').fadeIn(), 1000);
},
error: (xhr, status, err) => {
console.error(status, err.toString());
$(form).children().filter('.error').remove();
let errors = $.parseJSON(xhr.responseText),
fields = $(form).children().filter('[name]');
for (var i = fields.length - 1; i >= 0; i--) {
let {name} = fields[i];
if (errors.hasOwnProperty(name)) {
// append error message to input
fields[i].insertAdjacentHTML(
'beforeBegin',
`<label for=${name} class="error">${errors[name]}</label>`
);
};
};
}
});
},
ajaxFormListener = (form) => {
form.addEventListener("submit", (e) => {
e.preventDefault();
handleAjaxForm(form);
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment