Gibt es eine Möglichkeit zu bestimmen, welches Element ein Formular in einem onsubmit-Handler übergeben hat? Versuch, einen generischen Handler zu schreiben, der weiß, auf welches Element geklickt wurde. Zum Beispiel, angesichts dieser Form:
%Vor%Wie kann ich innerhalb des onSubmitHandler bestimmen, welche Schaltfläche zum Senden geklickt wurde? Ich habe versucht, event.target/event.srcElement, aber das gibt das Formular, nicht die eigentliche Schaltfläche senden.
Update: Ich schreibe hier ein generisches Steuerelement, also hat es keine Ahnung, was auf dem Formular steht. Die Lösung muss funktionieren, ohne den HTML-Code des Formulars zu kennen und zu ändern. Mein Fallback durchläuft das DOM, um alle Schaltflächen zu finden, die eine Übermittlung verursachen könnten, aber ich möchte das vermeiden.
Eine alternative Lösung wäre, den Ereignis-Trigger vom send-Ereignis des Formulars zum Ereignis onclick des Übermittlungselements zu verschieben:
%Vor%In Ihrer Handler-Funktion können Sie das übergebende Element ermitteln, indem Sie einfach den Namen des Ereignisziels überprüfen. Wenn Sie auf die Informationen des Formulars oder andere Elemente zugreifen müssen, können Sie dies über das Attribut "form" des Übermittlungselements abrufen.
Mein Fallback führt das DOM durch, um alle Knöpfe zu finden, die eine Submission verursachen könnten, aber ich möchte das vermeiden.
... und Hinzufügen von Klick-Listenern, um die zuletzt angeklickte Schaltfläche zu speichern, die dann vom Übermittlungs-Listener gelesen wird, richtig?
Ich kann mir keinen anderen Weg vorstellen, Entschuldigung.
Klicken Sie auf Ereignis-Blase, so dass Sie einfach einen "onclick" Listener zum Formular selbst hinzufügen können, der überprüft, ob die Klickzielquelle eine Übermittlungsschaltfläche ist; Ist dies der Fall, speichern Sie einen Verweis darauf, der mit dem Formular verknüpft ist, auf das Sie über den Handler für die Weitergabe von onsits zugreifen können.
Wenn Sie auch mit "Enter" -übermittelten Formularen arbeiten möchten, hören Sie sich das "onkeypress" oder "onkeydown" -Ereignis des Formulars an, prüfen Sie "Enter" und löschen Sie Ihre Submit-Button-Informationen, falls das Event-Target NOT ist eine Senden-Schaltfläche.
Tags und Links javascript html dhtml