66 lines
2.0 KiB
JavaScript

document.addEventListener("DOMContentLoaded", () => {
const form = document.getElementById("invoiceForm");
// Fonction pour afficher les messages
function showMessage(message, type = "success") {
const messageDiv = document.createElement("div");
messageDiv.className = `${type}-message`;
messageDiv.textContent = message;
document.body.appendChild(messageDiv);
// Afficher le message
setTimeout(() => messageDiv.classList.add("show"), 100);
// Supprimer le message après 3 secondes
setTimeout(() => {
messageDiv.classList.remove("show");
setTimeout(() => messageDiv.remove(), 300);
}, 3000);
}
// Fonction pour valider le formulaire
function validateForm(formData) {
const requiredFields = [
"invoice_number",
"amount",
"recipient_name",
"recipient_address",
"recipient_postal_code",
"recipient_town",
"recipient_country",
];
for (const field of requiredFields) {
if (!formData.get(field)) {
showMessage(`Le champ ${field} est requis`, "error");
return false;
}
}
return true;
}
// Gestionnaire de soumission du formulaire
form.addEventListener("submit", function (e) {
e.preventDefault();
// Récupérer les données du formulaire
const formData = {
language: form.language.value,
invoice_number: form.invoice_number.value,
amount: form.amount.value,
currency: form.currency.value,
recipient_name: form.recipient_name.value,
recipient_address: form.recipient_address.value,
recipient_postal_code: form.recipient_postal_code.value,
recipient_town: form.recipient_town.value,
recipient_country: form.recipient_country.value,
recipient_vat_number: form.recipient_vat_number.value || null,
};
// Rediriger vers la page de prévisualisation avec les données
const queryString = encodeURIComponent(JSON.stringify(formData));
window.location.href = `/preview?data=${queryString}`;
});
});