Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.1K
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda