Question

Je suis en train de comprendre pourquoi ce JavaScript n'arrête pas la soumission du formulaire:

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

A moins ajouter l'attribut onsubmit suivant à l'élément de formulaire:

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

On dirait que la méthode addEventListener seul devrait faire l'affaire. Des pensées? Je suis sur un Mac et je suis dans le même résultat sur Safari, Firefox et Opera. Merci.

Était-ce utile?

La solution

combine les informations des deux réponses très utiles dans une solution qui fonctionne sur Mac et PC:

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

Autres conseils

On dirait que si vous changez votre fonction

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

Il faut faire ce que vous cherchez.

la source

Je pense que ce que vous cherchez est la méthode preventDefault() de l'interface Event pour les navigateurs qui la mettent en œuvre. Il annulera la soumission du formulaire de la manière que vous attendiez « return false » à.

ici et .

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top