Form ist trotzdem eingereicht, obwohl listener-Funktion gibt false zurück
Ich versuche herauszufinden, warum dieses JavaScript nicht zu stoppen das Formular wird gesendet:
<form action="http://www.example.com" id="form">
<input type="text" />
<input type="submit" />
</form>
<script>
var code = function () {
return false;
};
var element = window.document.getElementById("form");
if (element.addEventListener) {
element.addEventListener("submit", code, false);
}
</script>
Es sei denn, ich fügen Sie die folgende "onsubmit" Attribut der form element:
<form action="http://www.example.com" id="form" onsubmit="return false">
<input type="text" />
<input type="submit" />
</form>
<script>
var code = function () {
return false;
};
var element = window.document.getElementById("form");
if (element.addEventListener) {
element.addEventListener("submit", code, false);
}
</script>
Scheint, wie die addEventListener-Methode alleine sollte den trick tun. Irgendwelche Gedanken? Ich bin auf einem Mac, und ich bin mit dem gleichen Ergebnis auf Safari, Firefox und Opera. Danke.
- möglich, Duplikat der auf false zurückgeben addEventListener senden noch das Formular absendet?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kombiniert die Informationen aus den beiden sehr hilfreichen Antworten in eine Lösung, die funktioniert sowohl auf Mac und PC:
Aussieht, wenn Sie Ihre Funktion
Sollte es tun, was, die Sie suchen.
Quelle
Ich denke was du suchst ist die
preventDefault()
Methode derEvent
Schnittstelle für Browser, die es umsetzen. Es wird Abbrechen des Formulars in der Weise, die Sie erwartet "return false
" zu.Mehr hier und hier.