laforceit-portfolio/assets/js/script.js

50 lines
1.6 KiB
JavaScript

function initFormHandling() {
const form = document.getElementById('contact-form');
if (!form) return;
form.addEventListener('submit', async (e) => {
e.preventDefault();
const submitBtn = form.querySelector('button[type="submit"]');
const originalBtnText = submitBtn.innerHTML;
submitBtn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Sending...';
submitBtn.disabled = true;
const formData = new FormData(form);
const data = {
name: formData.get('name'),
email: formData.get('email'),
subject: formData.get('subject'),
message: formData.get('message')
};
try {
const response = await fetch('/api/send-email', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
});
const result = await response.json();
if (!response.ok) {
throw new Error(result.details || result.error || 'Failed to send message');
}
// Show success message
showAlert('success', 'Message sent successfully! I will get back to you soon.');
form.reset();
} catch (error) {
console.error('Form submission error:', error);
showAlert('error', `Something went wrong: ${error.message}`);
} finally {
submitBtn.innerHTML = originalBtnText;
submitBtn.disabled = false;
}
});
}
// ... existing code ...