Para configurar formularios de Netlify, sigue estos pasos:
- Activar la detección automática de formularios
- En el panel de tu proyecto, accede a
Formulariosy activa Habilitar detección de formularios. - A partir del siguiente deploy, Netlify escaneará el proyecto en busca de formularios.
- Integración del formulario en el código
- Crea un componente
<form>que incluya los siguientes parámetros:- Un atributo
nameúnico para el formulario netlifyodata-netlify="true"method="POST"- Un campo oculto
form-namecon el mismo valor que el atributoname - Un honeypot para prevención de spam
- Un atributo
- 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">Enviar</button> </form>- El valor de
form-namedebe coincidir con el atributonamedel formulario, "contact" en el caso de la plantilla. - Cada campo debe incluir un atributo
namepara que Netlify pueda registrar el valor.
- El valor de
- Gestión de submit con JS
- Para evitar el refresco o redirección de la página al enviar el formulario, se puede interceptar el evento submit y enviar los datos mediante
fetch. - Ejemplo básico con 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('Formulario enviado correctamente'); } else { throw new Error(`Error: ${response.statusText}`); } } catch (error) { console.log("Error: " + error.message); } };- Una vez creado el método, asígnalo al evento submit del formulario usando
@submit.prevent.
- Una vez creado el método, asígnalo al evento submit del formulario usando
- Gestión de uso y notificaciones
- Tras el deploy, el formulario aparecerá automáticamente en la sección Formularios del proyecto.
- Accede a
Notificaciones de formulariopara añadir notificaciones de envío.