document.addEventListener('DOMContentLoaded', function () { // Bootstrap form validation const form = document.querySelector('.needs-validation'); if (form) { form.addEventListener('submit', function (event) { if (!form.checkValidity()) { event.preventDefault(); event.stopPropagation(); } form.classList.add('was-validated'); }, false); } // AJAX form submission for post-job-form const postJobForm = document.getElementById('post-job-form'); if (postJobForm) { postJobForm.addEventListener('submit', function (event) { event.preventDefault(); event.stopPropagation(); if (form.checkValidity()) { const formData = new FormData(postJobForm); const submitButton = postJobForm.querySelector('button[type="submit"]'); const originalButtonText = submitButton.innerHTML; submitButton.disabled = true; submitButton.innerHTML = ' Posting...'; fetch('add_job.php', { method: 'POST', body: formData }) .then(response => response.json()) .then(data => { const confirmationAlert = document.getElementById('confirmation-alert'); if (data.success) { postJobForm.reset(); postJobForm.classList.remove('was-validated'); confirmationAlert.classList.remove('d-none'); window.scrollTo(0, 0); } else { // You can implement a more specific error message display here alert('Error: ' + data.message); } }) .catch(error => { console.error('Error:', error); alert('An unexpected error occurred. Please try again.'); }) .finally(() => { submitButton.disabled = false; submitButton.innerHTML = originalButtonText; }); } postJobForm.classList.add('was-validated'); }); } });