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

1.1K
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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