Per configurar formularis de Netlify, segueix aquests passos:
- Activar la detecció automàtica de formularis
- Al panell del teu projecte, accedeix a
Formularisi activa Habilitar detecció de formularis. - A partir del següent deploy, Netlify escanejarà el projecte a la recerca de formularis.
- Integració del formulari al codi
- Crea un component
<form>que inclogui els paràmetres següents:- Un atribut
nameúnic per al formulari netlifyodata-netlify="true"method="POST"- Un camp ocult
form-nameamb el mateix valor que l'atributname - Un honeypot per a la prevenció de spam
- Un atribut
- Plantilla bàsica:
<form @submit.prevent="handleSubmit" name="Contact" data-netlify="true" netlify-honeypot="hpfield" method="POST" > <input type="hidden" name="form-name" value="Contact"> <input type="text" name="name" required> <input type="email" name="email" required> <button type="submit">Envia</button> </form>- El valor de
form-nameha de coincidir amb l'atributnamedel formulari, "contact" en el cas de la plantilla. - Cada camp ha d'incloure un atribut
nameperquè Netlify pugui registrar el valor.
- El valor de
- Gestió del submit amb JS
- Per evitar el refresc o la redirecció de la pàgina en enviar el formulari, pots interceptar l'esdeveniment submit i enviar les dades mitjançant
fetch. - Exemple bàsic amb JavaScript:
const handleSubmit = async (event) => { const form = event.target; const formData = new FormData(form); try { const response = await fetch("/", { method: 'POST', body: formData, headers: { 'Accept': 'application/json', } }); if (response.ok) { console.log('Formulari enviat correctament'); } else { throw new Error(`Error: ${response.statusText}`); } } catch (error) { console.log("Error: " + error.message); } };- Un cop creat el mètode, assigna'l a l'esdeveniment submit del formulari amb
@submit.prevent.
- Un cop creat el mètode, assigna'l a l'esdeveniment submit del formulari amb
- Gestió d'ús i notificacions
- Després del deploy, el formulari apareixerà automàticament a la secció Formularis del projecte.
- Accedeix a
Notificacions de formulariper afegir notificacions d'enviament.