Ich suche nach der besten Möglichkeit, ein HTML-Formular ohne Senden-Schaltfläche zu erstellen. Das selbst ist einfach genug, aber ich muss auch verhindern, dass sich das Formular selbst neu lädt, wenn übermittlungsähnliche Dinge erledigt werden (z. B. Enterin einem Textfeld).
javascript
html
forms
Matt Roberts
quelle
quelle
Antworten:
Fügen Sie dem Formular einen Onsubmit-Handler hinzu (entweder über einfaches js oder jquery $ (). Submit (fn)) und geben Sie false zurück, sofern Ihre spezifischen Bedingungen nicht erfüllt sind.
Wenn Sie nicht möchten, dass das Formular jemals gesendet wird, lassen Sie in diesem Fall einfach das Attribut 'action' für das Formularelement weg.
quelle
action
Attribut ist gemäß den Standards kein Formular - und führt in einigen Browsern tatsächlich zu einem erneuten Laden der Seite. Ich habe festgestellt, dass diesaction="javascript:void(0);"
gut funktioniert.Sie sollten es
action="javascript:void(0);"
in Ihr Formular aufnehmen, um das erneute Laden von Seiten zu verhindern und den HTML-Standard beizubehalten.quelle
Fügen Sie dieses Ereignis einfach Ihrem Textfeld hinzu. Es verhindert eine Übermittlung beim Drücken der Eingabetaste, und Sie können nach Bedarf eine Übermittlungsschaltfläche hinzufügen oder form.submit () aufrufen:
Beispielsweise:
quelle
Wenn Sie in einem Formular die Eingabetaste drücken, muss das natürliche Verhalten des Formulars gesendet werden. Um dieses nicht natürliche Verhalten zu stoppen, müssen Sie mit jquery verhindern, dass es gesendet wird (Standardverhalten):
quelle
eine Idee:
und
quelle
Zwei Möglichkeiten zu lösen:
quelle
textarea
s führen und möglicherweise die automatische Vervollständigung oder Dropdowns auswählen. Mobilgeräte können eine weitere Problemquelle sein.Die erste Antwort ist die beste Lösung:
Genauer gesagt mit jquery:
Das Schreiben von Chrome-Erweiterungen ist ein Beispiel dafür, wo Sie möglicherweise ein Formular für Benutzereingaben haben, das Sie jedoch nicht senden möchten. Wenn Sie action = "javascript: void (0);" verwenden, funktioniert der Code wahrscheinlich, aber es tritt dieses Problem auf, bei dem beim Ausführen von Inline-Javascript eine Fehlermeldung angezeigt wird.
Wenn Sie die Aktion vollständig auslassen, wird das Formular neu geladen, was in einigen Fällen auch beim Schreiben einer Chrome-Erweiterung unerwünscht ist. Oder wenn Sie eine Webseite mit einer Art eingebettetem Taschenrechner hätten, auf der der Benutzer Eingaben machen und auf "Berechnen" oder ähnliches klicken würde.
quelle