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

161
Views
¿Por qué un <button>, con atributo type="submit", no se enviaría con el formulario cuando se usa HTMLFormElement.submit()?

Resulta que tengo el siguiente formulario:

 <form method="post" action=<?php echo htmlspecialchars($_SERVER['REQUEST_URI']); ?> enctype="multipart/form-data"> <button type="submit" name="identifier" value="wikipedea_form"> Add Post </button> </form>

Uso jquery para enviar este formulario como

 $("form").submit();

Esto no envía los datos de la publicación $_POST["identifier"] . Supongo que jQuery usa HTMLFormElement.submit() bajo el capó. Los documentos de MDN dicen que:

<input> con atributo type="submit" no se enviará con el formulario cuando se use HTMLFormElement.submit()...

Creo que lo mismo se aplica a la etiqueta del button también. Solo para estar 100% seguro de que estoy preguntando aquí. Puede ser que depende del navegador, etc, etc...

Entonces, ¿no se enviaría <button> con el atributo type="submit" con el formulario al usar HTMLFormElement.submit() ? Cite la documentación oficial para respaldar su respuesta.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Solo los controles exitosos se envían en el envío de formulario normal.

Los botones de envío solo funcionan correctamente si se utilizan para enviar el formulario (o si el formulario se envía a través de Intro en una única entrada de texto, en cuyo caso el botón de envío predeterminado funciona correctamente). Esto le permite distinguir qué botón se utilizó para enviar el formulario en casos como:

 <button name="action" value="like">Like</button> <button name="action" value="dislike">Dislike</button>

Activar el envío de formularios con JS omite la selección de un botón de envío.


  1. Para cada campo de elemento en los controles, en orden de árbol:

    1. Si alguno de los siguientes es cierto:
      • El elemento de campo tiene un antecesor de elemento de lista de datos.
      • El elemento de campo está deshabilitado.
      • El elemento de campo es un botón pero no es un remitente.
      • El elemento de campo es un elemento de entrada cuyo atributo de tipo está en el estado de casilla de verificación y cuya verificación es falsa.
      • El elemento de campo es un elemento de entrada cuyo atributo de tipo está en el estado Botón de opción y cuya verificación es falsa.

    Luego continúa.

— https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#constructing-the-form-data-set


Si desea enviar datos con un formulario cada vez que se envía, independientemente de cómo se envió: use <input type="hidden" ...>

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