Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

242
Visualizações
No se puede capturar el evento de envío del formulario en una aplicación React

Aquí hay una demostración de mi problema. Esta es una nueva aplicación creada a partir de la ejecución de CRA y solo cambiando el código App.js a esto:

 import './App.css'; function App() { function getSubmit() { alert('submit!') return false } return ( <div className="App"> <header className="App-header"> <p> Test form submit capture. </p <form onsubmit={getSubmit}> Testing form submit <br /> Click "submit": <br /> <button type='submit'> Submit </button> </form> </header> </div > ); } export default App;

Compila y se ejecuta, pero no se llama a la función "getSubmit". Al ejecutarse en modo de depuración, no se alcanza un punto de interrupción establecido allí. La pestaña de la ventana parpadea cuando hago clic en Enviar, pero no puedo leer lo que contiene.

Este es el paquete.json si fuera útil:

 { "name": "formsubmit", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", "react": "^17.0.2", "react-dom": "^17.0.2", "react-scripts": "4.0.3", "web-vitals": "^1.0.1" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

En realidad, debe evitar el comportamiento predeterminado del evento de envío, y debe ser onSubmit , no onsubmit . Prueba con esto:

 import './App.css'; function App() { function getSubmit(e) { e.preventDefault(); alert('submit!'); return false; } return ( <div className="App"> <header className="App-header"> <p> Test form submit capture. </p <form onSubmit={getSubmit}> Testing form submit <br /> Click "submit": <br /> <button type='submit'> Submit </button> </form> </header> </div > ); } export default App;
about 4 years ago · Juan Pablo Isaza Relatório

0

Esto funciona porque cuando envía un formulario, se vuelve a cargar de forma predeterminada, así que evite el valor predeterminado de la siguiente manera:

 function getSubmit(event) { event.preventDefault(); alert('submit!') return false }
about 4 years ago · Juan Pablo Isaza Relatório

0

Le falta un '>' de cierre en una de sus etiquetas p, pero suponiendo que solo fue un error de copia, creo que su verdadero problema es:

 <form onsubmit={getSubmit}>

onsubmit no significa nada para javascript, necesita onSubmit

Además, es posible que desee pasar un evento a su controlador de envío y evitar el comportamiento de envío predeterminado de actualizar la página para que pueda ver lo que sucede en su depurador.

 function getSubmit(event) { event.preventDefault() alert('submit!') return false }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda