到目前为止,我一直试图让它运转起来没有运气。如果我使用return false;它有效,但没有预防默认,有什么我想念的吗?谢谢。
<html>
<meta http-equiv = "Content-Type" content = "text/html; charset = utf-8">
<script>
function hit(e) {
e.preventDefault();
}
</script>
<body>
<form onsubmit="hit()">
<input type="submit" value="submit" />
</form>
<div id="d"> </div>
</body>
</html>
答案 0 :(得分:2)
事件对象是事件处理函数的第一个参数,即onsubmit
。 hit
是您从onsubmit
调用的函数,并且您没有传递任何参数。
使用JavaScript绑定事件处理程序,而不是HTML。
addEventListener("load", bind_event_handlers);
function bind_event_handlers(e) {
document.querySelector("form").addEventListener("submit", hit);
function hit(e) {
e.preventDefault();
}
}
答案 1 :(得分:2)
您必须在内联事件处理程序
中显式传递event
对象
<form onsubmit="hit(event)">
但建议对此类任务使用专用事件处理程序,例如
document.querySelector("form").addEventListener("submit",function(e){
e.preventDefault();
},false)
答案 2 :(得分:1)
您也可以在onsubmit
内使用return来阻止提交表单:
<script>
function hit() {
return false; // Use 'true' to submit the form
}
</script>
<body>
<form onsubmit="return hit();">
<input type="submit" value="submit" />
</form>
<div id="d"> </div>
答案 3 :(得分:-4)
将onsubmit
更改为onsubmit="hit"