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

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

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