Frage

Ich versuche, herauszufinden, warum dies JavaScript aus nicht die Form stoppt vorgelegt werden:

<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>

Wenn ich das folgende onsubmit Attribut in das Formularelement hinzufügen:

<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>

Es scheint, wie die addEventListener Methode allein sollte es tun. Irgendwelche Gedanken? Ich bin auf einem Mac, und ich bin das gleiche Ergebnis auf Safari, Firefox und Opera zu erleben. Danke.

War es hilfreich?

Lösung

, um die Informationen aus den zwei sehr hilfreichen Antworten in eine Lösung kombiniert, die auf Mac und PC funktioniert:

         
<script>
var code = function (eventObject) {
    if (eventObject.preventDefault) {
        eventObject.preventDefault();
    } else if (window.event) /* for ie */ {
        window.event.returnValue = false;
    }
    return true;
};
var element = window.document.getElementById("form");
if (element.addEventListener) {
    element.addEventListener("submit", code, false);
} else if (element.attachEvent) {
    element.attachEvent("onsubmit", code);
}
</script>

Andere Tipps

Sieht aus wie wenn Sie Ihre Funktion

ändern
var code = function(e) {
    e.preventDefault();
}

Es sollte das tun, was Sie suchen.

Quelle

Ich denke, was Sie suchen ist die preventDefault() Methode der Event Schnittstelle für Browser, die es umzusetzen. Es wird die Formulareinreichung in der Art und Weise kündigen Sie „return false“ zu erwarten.

Mehr hier und hier .

<script type="text/javascript">
 var code = function (evt) {
            if (evt.preventDefault) {
                evt.preventDefault();
            }
            return false;
};
window.onload = function() {
    var element = window.document.getElementById("form");
    if (element.addEventListener) {
        element.addEventListener("submit", code, false);
    }
};
</script>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top