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

1.1K
Views
Obteniendo el error "Envío de formulario cancelado porque el formulario no está conectado"

Tengo un sitio web antiguo con JQuery 1.7 que funciona correctamente hasta hace dos días. De repente, algunos de mis botones ya no funcionan y, después de hacer clic en ellos, aparece esta advertencia en la consola:

Envío de formulario cancelado porque el formulario no está conectado

El código detrás del clic es algo como esto:

 this.handleExcelExporter = function(href, cols) { var form = $('<form method="post"><input type="submit" /><input type="hidden" name="layout" /></form>').attr('action', href); $('input[name="layout"]', form).val(JSON.stringify(cols)); $('input[type="submit"]', form).click(); }

Parece que Chrome 56 ya no admite este tipo de código. ¿no es así? Si es así mi pregunta es:

  1. ¿Por qué sucedió esto de repente? ¿Sin ninguna advertencia de desaprobación?
  2. ¿Cuál es la solución para este código?
  3. ¿Hay alguna manera de forzar a Chrome (u otros navegadores) a funcionar como antes sin cambiar ningún código?

PD Tampoco funciona en la última versión de Firefox (sin ningún mensaje). ¡Tampoco funciona en IE 11.0 y Edge! (ambos sin ningún mensaje)

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Respuesta rápida: agregue el formulario al cuerpo.

document.body.appendChild(form);

O, si está utilizando jQuery como se indica arriba: $(document.body).append(form);

Detalles: De acuerdo con los estándares HTML, si el formulario no está asociado al contexto de navegación (documento), se cancelará el envío del formulario.

ESPEC. HTML ver 4.10.21.3.2

En Chrome 56, se aplicó esta especificación.

Diferencia de código de Chrome ver @@ -347,9 +347,16 @@

PD sobre tu pregunta #1. En mi opinión, a diferencia de ajax, el envío de formularios provoca un movimiento de página instantáneo.
Por lo tanto, mostrar un "mensaje de advertencia en desuso" es casi imposible.
También creo que es inaceptable que este cambio serio no esté incluido en la lista de cambios de características. Funciones de Chrome 56: www.chromestatus.com/features#milestone%3D56

over 4 years ago · Santiago Trujillo Report

0

Si ve este error en React JS cuando intenta enviar el formulario presionando Intro, asegúrese de que todos los botones del formulario que no envían el formulario tengan un type="button" .

Si solo tiene un button con type="submit" , al presionar Enter se enviará el formulario como se esperaba.

Referencias :
https://dzello.com/blog/2017/02/19/demystifying-enter-key-submission-for-react-forms/ https://github.com/facebook/react/issues/2093

over 4 years ago · Santiago Trujillo Report

0

agregue el atributo type="button" al botón en el que hace clic, ve el error, funcionó para mí.

over 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!