0

我们目前正在绑定到提交按钮的单击事件(我们没有绑定到表单的提交事件是有原因的)。是否保证我们的 JS 将在表单提交之前运行(因为我们正在将值输入到我们想要提交的隐藏字段中)或者我们是否需要阻止表单提交然后再次调用提交?

$(function() {
    $('#button').on('click', function() {
        // Do some stuff here - needs to finish before the form submits

        return true;
    });
});

提前致谢!

4

2 回答 2

0

根据我的经验,点击事件中的代码将始终首先运行。

我刚刚在最新的 chrome 上运行了一个简单的测试,循环循环 10,000 次。直到循环完成(约 5 秒)后,表单才提交。

如果您尝试在 click 函数中运行一些 ajax 调用或 setTimeout,则表单很可能会在您的回调/ajax 完成之前提交。

于 2013-08-18T21:33:34.343 回答
0

它会在发送提交事件之前工作,但您只是在监听该click事件。如果用户点击enter,表单将在不运行您的代码的情况下提交。我认为你应该坚持这个submit活动。回调函数将接收作为参数event(并且您可以执行类似e.preventDefault();e.stopPropagation();

$("form").on("submit",function(event){});
于 2013-08-18T21:41:16.937 回答