Sicuramente, non esiste una soluzione con HTML puro per inviare un modulo con un link (a
tag ). L'HTML standard accetta solo pulsanti o immagini. Come hanno affermato alcuni altri collaboratori, è possibile simulare l'aspetto di un collegamento utilizzando un pulsante, ma immagino che non sia lo scopo della domanda.
IMHO, credo che la soluzione proposta e accettata non funzioni.
L'ho provato su un modulo e il browser non ha trovato il riferimento al modulo.
Quindi è possibile risolverlo usando una singola riga di JavaScript, usando this
object, che fa riferimento all'elemento su cui si fa clic, che è un nodo figlio del modulo, che deve essere inviato. Così this.parentNode
è il nodo del modulo. Dopo sta solo chiamando il submit()
metodo in quel modulo. Non è necessaria alcuna ricerca dall'intero documento per trovare la forma giusta.
<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>
Supponi di inserire con il mio nome:
Ho usato l' get
attributo del metodo del modulo perché è possibile visualizzare i parametri corretti nell'URL nella pagina caricata dopo l'invio.
http://www.greatsolutions.com.br/indexint.htm?fname=Paulo&lname=Buchsbaum
Questa soluzione ovviamente si applica a qualsiasi tag che accetta l' onclick
evento o qualche evento simile.
this
è una scelta eccellente per ripristinare il contesto insieme alla event
variabile (disponibile in tutti i principali browser e IE9 in poi) che può essere utilizzata direttamente o passata come argomento a una funzione.
In questo caso, sostituire la riga con a
tag con la riga in basso, utilizzando la proprietà target
, che indica l'elemento che ha avviato l'evento.
<a href="#" onclick="event.target.parentNode.submit();"> Submit here</a>