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

257
Vistas
A FormData le falta el valor de envío: ¿obtenerlo, tal vez sin SubmitEvent.submitter?

Cuando escucho el evento de submit de un <form> y obtengo los FormData del formulario, por ejemplo, para enviarlo a través de un XHR, faltan los datos del botón de envío:

 <form> <input type="text" name="x" value="foo" /> <input type="hidden" name="y" value="bar" /> <button type="submit" name="submit1" value="bar">submit1</button> <input type="submit" name="submit2" value="submit2" /> </form>

FormData tendrá x , pero ni y ni submit1 submit2 Pruébalo en un bolígrafo . Me gustaría que contuviera uno de ellos , a saber, el que activó el envío, al igual que los datos que se enviarían a la action .

Podría hacer algo onsubmit , como

 form.onsubmit = function (evt) { var fd = new FormData(form); fd.append(evt.submitter.name, evt.submitter.value); // process fd... });

PERO SubmitEvent.submitter es bastante nuevo, notablemente sin IE, y solo TP de Safari en el momento de escribir este artículo.

¿Hay alguna manera de enviar el envío a FormData sin hacer una solución alternativa como escuchar todos los eventos de clic de las entradas del formulario y crear, por ejemplo, entradas ocultas con sus datos?


Después de la respuesta aceptada, implementé un "polyfill":

 document.querySelectorAll('form').forEach(function (form) { // query might miss <button>s without @type form.querySelectorAll('[type="submit"]').forEach(function (submit) { submit.addEventListener('click', function () { var input = document.createElement('input') input.setAttribute('type', 'hidden') input.setAttribute('name', this.name) input.setAttribute('value', this.value) this.form.appendChild(input) }) }) })
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¿Hay alguna manera de enviar el envío a FormData sin hacer una solución alternativa como escuchar todos los eventos de clic de las entradas del formulario y crear, por ejemplo, entradas ocultas con sus datos?

No.

SubmitEvent.submitter es la función que se agregó para eliminar la necesidad de eventos de clic separados.

about 4 years ago · Juan Pablo Isaza 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