Mit reinem HTML gibt es definitiv keine Lösung, um ein Formular mit einem link ( a
) -Tag zu senden . Das Standard-HTML akzeptiert nur Schaltflächen oder Bilder. Wie einige andere Mitarbeiter gesagt haben, kann man das Erscheinungsbild eines Links mithilfe einer Schaltfläche simulieren, aber ich denke, das ist nicht der Zweck der Frage.
IMHO glaube ich, dass die vorgeschlagene und akzeptierte Lösung nicht funktioniert.
Ich habe es auf einem Formular getestet und der Browser hat den Verweis auf das Formular nicht gefunden.
Es ist also möglich, es mit einer einzelnen Zeile JavaScript unter Verwendung eines this
Objekts zu lösen , das auf das angeklickte Element verweist, bei dem es sich um einen untergeordneten Knoten des Formulars handelt, das gesendet werden muss. So this.parentNode
ist der Formularknoten. Nachdem es nur submit()
Methode in dieser Form aufgerufen hat. Es ist keine notwendige Recherche aus dem gesamten Dokument erforderlich, um die richtige Form zu finden.
<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>
Angenommen, ich gebe mit meinem eigenen Namen ein:
Ich habe das get
Attribut form method verwendet, da es möglich ist, die richtigen Parameter in der URL auf der geladenen Seite nach dem Senden anzuzeigen.
http://www.greatsolutions.com.br/indexint.htm?fname=Paulo&lname=Buchsbaum
Diese Lösung gilt natürlich für alle Tags, die das onclick
Ereignis oder ein ähnliches Ereignis akzeptieren .
this
ist eine ausgezeichnete Wahl, um den Kontext zusammen mit einer event
Variablen (verfügbar in allen gängigen Browsern und ab IE9) wiederherzustellen, die direkt verwendet oder als Argument an eine Funktion übergeben werden kann.
Ersetzen Sie in diesem Fall die Zeile durch ein a
Tag durch die folgende Zeile. Verwenden Sie dazu die Eigenschaft target
, die das Element angibt, das das Ereignis gestartet hat.
<a href="#" onclick="event.target.parentNode.submit();"> Submit here</a>