Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

296
Views
El formulario de Netlify no funciona con un modal Material-UI

Tengo una aplicación Next.js simple en Netlify que abre un formulario para hacer clic en el botón de suscripción.

Código

Aquí está el archivo de índice:

pages/index.js

 import React from 'react'; import { SubscribeModal } from '../components/SubscribeModal'; export default function Home() { const [open, setOpen] = React.useState(false); return ( <div> <button onClick={() => setOpen(true)}>Sign in in newsletters</button> <SubscribeModal open={open} onClose={() => setOpen(false)} onSuccess={() => setOpenBadNews(true)} /> </div> ); }

Aquí está el modal:

components/SubscribeModal.js

 import { Dialog, DialogTitle } from '@mui/material'; export function SubscribeModal({ open, onClose, onSuccess }) { return ( <Dialog onClose={onClose} open={open}> <DialogTitle> <b>Login</b> </DialogTitle> <form name="contact" action="/success" method="POST" data-netlify="true"> <input type="hidden" name="form-name" value="contact" /> <p> <label htmlFor="youremail">Your Email: </label>{' '} <input type="email" name="email" id="youremail" /> </p> <p> <button type="submit">Send</button> </p> </form> </Dialog> ); }

También tengo una aplicación sencilla de pages/success.js con un mensaje de éxito.

Problema

Cuando hago clic en el botón Enviar, aparece una página 404.

solución probada

  • He probado todas las etiquetas en la etiqueta de formulario.
  • Lo probé con Next build & Next export y con la implementación predeterminada de Next config.
  • Lo probé con el componente Material UI o elementos nativos HTML

¿Alguien tiene una idea?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Es porque su modal no se representa en la compilación.

Netlify analizará su HTML para encontrar la data-netlify="true" . Pero en la compilación, no hay ninguna etiqueta porque JavaScript agregará el modal cuando el usuario haga clic en el botón y no en el momento de la compilación.

Entonces puede crear otra página en su próximo proyecto como /subscribe con el formulario. Entonces, el formulario se procesará en el momento de la compilación y Netlify podrá detectar su formulario.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!