Definitivamente, no existe una solución con HTML puro para enviar un formulario con una a
etiqueta link ( ). El HTML estándar solo acepta botones o imágenes. Como han dicho otros colaboradores, uno puede simular la apariencia de un enlace usando un botón, pero supongo que ese no es el propósito de la pregunta.
En mi humilde opinión, creo que la solución propuesta y aceptada no funciona.
Lo probé en un formulario y el navegador no encontró la referencia al formulario.
Por lo tanto, es posible resolverlo usando una sola línea de JavaScript, usando un this
objeto, que hace referencia al elemento en el que se hace clic, que es un nodo secundario del formulario, que debe enviarse. Así this.parentNode
es el nodo de formulario. Después de que solo está llamando al submit()
método de esa forma. No es necesario investigar todo el documento para encontrar la forma correcta.
<form action="http://www.greatsolutions.com.br/indexint.htm"
method="get">
<h3> Enter your name</h3>
First Name <input type="text" name="fname" size="30"><br>
Last Name <input type="text" name="lname" size="30"><br>
<a href="#" onclick="this.parentNode.submit();"> Submit here</a>
</form>
Supongamos que entro con mi propio nombre:
He usado el get
atributo de método de formulario porque es posible ver los parámetros correctos en la URL en la página cargada después de enviar.
http://www.greatsolutions.com.br/indexint.htm?fname=Paulo&lname=Buchsbaum
Obviamente, esta solución se aplica a cualquier etiqueta que acepte el onclick
evento o algún evento similar.
this
es una excelente opción para recuperar el contexto junto con event
variables (disponibles en todos los principales navegadores e IE9 en adelante) que se pueden usar directamente o pasar como argumento a una función.
En este caso, reemplace la línea con la a
etiqueta por la línea a continuación, utilizando la propiedad target
, que indica el elemento que ha iniciado el evento.
<a href="#" onclick="event.target.parentNode.submit();"> Submit here</a>