¿Hay alguna forma de determinar qué elemento envió un formulario desde un controlador onsubmit? Tratando de escribir un controlador genérico que sepa en qué elemento se hizo clic. Por ejemplo, dada la siguiente forma:Determine qué elemento envió un formulario desde 0subtitulo
<form onsubmit="onSubmitHandler">
<input type="submit" name="submit1" />
<input type="submit" name="submit2" />
</form>
¿Cómo puedo determinar el interior de la cual onSubmitHandler botón de enviar se hace clic? Intenté event.target/event.srcElement, pero eso da el formulario, no el botón de envío real.
Actualización: Estoy escribiendo un control genérico aquí, por lo que no tiene idea de lo que hay en el formulario. La solución debe funcionar sin conocer ni cambiar el html del formulario. Mi alternativa es recorrer el DOM para encontrar todos los botones que podrían causar un envío, pero me gustaría evitar eso.
No hay garantía de que se haya hecho clic en ningún botón de envío. P.ej. Al enviar por JS (form.submit()) no se incluirá ningún valor de botones en la publicación –
. Eso está bien también. Un poco más de antecedentes sobre el problema: esto es para un componente AJAX.Estoy cancelando el primer envío, haciendo lo mío, y luego tengo que volver a ejecutar el primer envío como sucedió, con todos los valores de formulario correctos. Por lo que he podido determinar, la única forma de hacerlo es recorrer el DOM y agregar manejadores de clics a todo lo que pueda causar un envío, y luego guardarlo. Supongamos que lo último que se hizo clic fue lo que envió el formulario, y luego llama a .click() cuando necesito volver a enviar el formulario. –