Ich habe ein Formular mit einer Texteingabe:
%Vor%Ich möchte nur, dass es in bestimmten Fällen eingereicht wird. (Ich führe zuerst eine Fehlerüberprüfung durch)
%Vor%Das Problem ist: Obwohl die Warnung fehlerfrei ausgelöst wird, wird das Formular dennoch übermittelt (es gibt keine anderen Anweisungen zum Senden als die eine!).
Vielen Dank, wenn jemand etwas dazu sagen kann. . .
Es gibt einen grundlegenden Fehler bei diesem Ansatz. Sie sagen dem Formular gerade, dass wenn text1
sich ändert, dann someFunc()
aufrufen. Wenn dies der Fall ist, verwenden Sie JavaScript, um das Formular zu senden. Wenn es falsch ist, machen Sie weiter mit Ihrem Geschäft. Wenn Sie in der Texteingabe die Eingabetaste drücken, wird das Formular noch übergeben. Wenn eine Schaltfläche zum Absenden vorhanden ist, die angeklickt wird, wird das Formular trotzdem übermittelt.
Der grundlegende Weg, um dies zu erreichen, ist wie folgt:
%Vor% Wenn das Von übermittelt wird, rufen Sie someFunc()
auf. Diese Funktion muss entweder true oder false zurückgeben. Wenn es wahr zurückgibt, wird das Formular übergeben. Wenn false, tut das Formular nichts.
Jetzt braucht Ihr JavaScript eine kleine Änderung:
%Vor% Sie können immer noch andere Funktionen aufrufen, wenn ein Feld geändert wird, aber sie werden die endgültige Einreichung des Formulars immer noch nicht verwalten. In der Tat könnte someFunc()
die anderen Funktionen aufrufen, um eine abschließende Prüfung durchzuführen, bevor wahr oder falsch zum onsubmit-Ereignis zurückgegeben wird.
BEARBEITEN: Dokumentation zur impliziten Formularübermittlung.
EDIT 2:
Dieser Code:
%Vor% stoppt die Standardverarbeitung für das change
-Ereignis, das diesem Element zugeordnet ist. Wenn Sie das Ereignis submit
beeinflussen möchten, tun Sie Folgendes:
Was würde Ihnen erlauben, so etwas zu tun:
%Vor%Tags und Links javascript forms submit