I'm trying to figure out why this JavaScript doesn't stop the form from being submitted:
<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>
Unless I add the following onsubmit attribute to the 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>
Seems like the addEventListener method alone should do the trick. Any thoughts? I'm on a Mac and I'm experiencing the same result on Safari, Firefox and Opera. Thanks.
I think what you're looking for is the
preventDefault()
method of theEvent
interface for browsers that implement it. It will cancel the form submission in the way you expected "return false
" to.More here and here.
Looks like if you change your function to
It should do what you're looking for.
source
Combined the information from the two very helpful answers into a solution that works on both Mac and PC: