javascript 如何防止表单提交默认?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/17709140/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to prevent default on form submit?
提问by TK123
If I do this I can prevent default on form submit just fine:
如果我这样做,我可以防止表单默认提交就好了:
document.getElementById('my-form').onsubmit(function(e) {
e.preventDefault();
// do something
});
But since I am organizing my code in a modular way I am handling events like this:
但是由于我以模块化方式组织我的代码,所以我正在处理这样的事件:
document.getElementById('my-form').addEventListener('onsubmit', my_func);
var my_func = function() {
// HOW DO I PREVENT DEFAULT HERE???
// do something
}
How can I prevent default now?
我现在如何防止默认?
回答by Thank you
The same way, actually! demo
同样的方式,其实!演示
Some HTML
一些 HTML
<form id="panda" method="post">
<input type="submit" value="The Panda says..."/>
</form>
Your JavaScript
你的 JavaScript
// your function
var my_func = function(event) {
alert("me and all my relatives are owned by China");
event.preventDefault();
};
// your form
var form = document.getElementById("panda");
// attach event listener
form.addEventListener("submit", my_func, true);
Note: when using .addEventListener
you should use submit
not onsubmit
.
注意:使用.addEventListener
时应该使用submit
not onsubmit
。
Note 2: Because of the way you're defining my_func
, it's important that you call addEventListener
afteryou define the function. JavaScript uses hoistingso you need to be careful of order of things when using var
to define functions.
注意 2:由于您定义的方式,在定义函数后my_func
调用很重要。JavaScript 使用提升,因此在用于定义函数时需要注意事物的顺序。addEventListener
var
Read more about addEventListenerand the EventListenerinterface.
阅读有关addEventListener和EventListener接口的更多信息。
回答by lucaspiaso
i known this is old, but just for the sake of it. try
我知道这是旧的,但只是为了它。尝试
document.getElementById('my-form').addEventListener('onsubmit',
function(event){event.preventDefault();my_func();});
var my_func = function() {
// HOW DO I PREVENT DEFAULT HERE???
// do something
}