Anstelle einer Senden-Schaltfläche habe ich einen Link:
<form>
<a href="#"> submit </a>
</form>
Kann ich das Formular senden lassen, wenn darauf geklickt wird?
javascript
html
forms
hyperlink
sandig
quelle
quelle
target="_blank"
scheint nicht zu funktionieren.<a role="button" aria-label="submit form" href="javascript:void(0)" onclick="document.querySelector('form').submit()">Submit</a>
Antworten:
Die beste Art
Der beste Weg ist, ein geeignetes Eingabe-Tag einzufügen:
Der beste JS-Weg
Fügen Sie den letzteren JavaScript-Code einem
DOMContentLoaded
Ereignis hinzu (wählen Sie nurload
aus Gründen der Abwärtskompatibilität ), falls Sie dies noch nicht getan haben:Der einfache, nicht empfehlenswerte Weg (die frühere Antwort)
Fügen Sie
onclick
dem Link undid
dem Formular ein Attribut hinzu :Alle Wege
Wie auch immer Sie sich entscheiden, Sie haben
formObject.submit()
irgendwann einen Aufruf (woformObject
ist das DOM-Objekt des<form>
Tags).Sie müssen auch einen solchen Ereignishandler binden, der aufruft
formObject.submit()
, damit er aufgerufen wird, wenn der Benutzer auf einen bestimmten Link oder eine bestimmte Schaltfläche klickt. Es gibt zwei Möglichkeiten:Empfohlen: Binden Sie einen Ereignis-Listener an das DOM-Objekt.
Nicht empfohlen: Inline-JavaScript einfügen. Es gibt mehrere Gründe, warum diese Technik nicht empfehlenswert ist. Ein Hauptargument ist, dass Sie Markup (HTML) mit Skripten (JS) mischen. Der Code wird unorganisiert und eher nicht mehr wartbar.
Nun kommen wir zu dem Punkt, an dem Sie sich für das UI-Element entscheiden müssen, das den Aufruf von submit () auslöst.
Ein Knopf
Eine Verbindung
Wenden Sie die oben genannten Techniken an, um einen Ereignis-Listener hinzuzufügen.
quelle
name="submit"
, kann auf diesubmit()
Methode Ihres Formulars nicht zugegriffen werden.<input type="submit">
hat eine semantischere Bedeutung als beispielsweise<a href="#" onclick="...">
. Dies ist besonders wichtig bei Screenreadern. Wenn Sie Letzteres verwenden müssen, würde ich vorschlagen, ARIA zu verwenden .Wenn Sie jQuery verwenden und eine Inline-Lösung benötigen, funktioniert dies sehr gut.
Möglicherweise möchten Sie auch ersetzen
mit
Der Benutzer scrollt also nicht zum Anfang Ihrer Seite, wenn er auf den Link klickt.
quelle
href="#"
und wähle dann alle diese Links mit jquery aus und rufee.preventDefault()
denclick
Ereignishandler auf, damit der Browser nicht scrollt.Sie können dem Formular und dem Link einige IDs geben und dann das
onclick
Ereignis des Links undsubmit
des Formulars abonnieren :und dann:
Ich würde empfehlen, dass Sie zum Senden von Formularen eine Schaltfläche zum Senden verwenden, da diese die Markup-Semantik berücksichtigt und auch für Benutzer mit deaktiviertem Javascript funktioniert.
quelle
HTML & CSS - Keine Javascript-Lösung
HTML:
CSS:
quelle
Dies funktioniert gut, ohne dass eine spezielle Funktion erforderlich ist. Viel einfacher mit PHP zu schreiben.
<input onclick="this.form.submit()"/>
quelle
<input onclick="this.form.submit()"> Some Text</input>
quelle
In meinem Fall funktioniert es perfekt.
Sie können es in Funktion auch wie verwenden,
Legen Sie "theForm" als Formular-ID fest. Es ist fertig.
quelle
Hier ist die beste Lösung für Ihre Frage: Innerhalb des Formulars haben Sie diesen Code:
Gehen Sie in der CSS-Datei folgendermaßen vor:
In JS machst du das:
Los geht's.
quelle