news/plugins/form/assets/xhr-submitter.js

25 lines
984 B
JavaScript

function attachFormSubmitListener(formId) {
var form = document.getElementById(formId);
if (!form) {
console.warn('Form with ID "' + formId + '" not found.');
return;
}
form.addEventListener('submit', function(e) {
// Prevent standard form submission
e.preventDefault();
// Submit the form via Ajax
var xhr = new XMLHttpRequest();
xhr.open(form.getAttribute('method'), form.getAttribute('action'));
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
if (xhr.status === 200) {
form.innerHTML = xhr.responseText; // Update the current form's innerHTML
} else {
// Handle HTTP error responses (optional)
console.error('Form submission failed with status: ' + xhr.status);
}
};
xhr.send(new URLSearchParams(new FormData(form)).toString());
});
}