onsubmit 调用的函数从未到达

function called by onsubmit never reached

可能是一个愚蠢的疏忽,但我有一个类似于此的 HTML 表格:

<form onsubmit="updateProfile();">
    <input type="submit" value="Update Account">

    ..
    ...

</form>

并且:

function updateProfile() {

    // never gets here

};

我在 updateProfile() 函数中设置了一个断点,但是当我单击 Update Account 按钮时它永远不会到达那里。

谁能给我一个可能的解释?

看来我无法重现你的问题,看这里是不是很相似?

codepen http://codepen.io/icrosil/pen/bdXyPL

根据标准,没有 action 属性的表单不是表单 - 实际上会导致某些浏览器重新加载页面。

为避免此行为更新来自

<form onsubmit="updateProfile();">

<form onsubmit="updateProfile(); return false;">
<form onsubmit="updateProfile(event);">
<input type="submit" value="Update Account">

..
...

</form>

function updateProfile(e) {
e.preventDefault();
 alert("it gets here buddy");

};
<form id="myForm">
    <input type="submit">
</form>

然后在 javascript 你可以这样做

$('#myForm').on('submit', function(event){
    event.preventDefault();
    updateProfile();
});

并且不要忘记导入 jquery 库 :)

可能是文档某处的点击处理程序处于活动状态,捕捉点击事件,防止默认操作发生(返回 false 或使用 event.preventDefault()),因此 submit 事件永远不会从表单触发。