66 lines
2.0 KiB
JavaScript
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}`;
|
||
|
|
});
|
||
|
|
});
|