绑定到提交按钮的点击事件,将在表单提交之前运行我们的JS

Binding to the click event of a submit button, will our JS run before the form submits?

本文关键字:表单提交 我们 运行 JS 提交 按钮 事件 绑定      更新时间:2023-09-26

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

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

提前感谢!

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

$("form").on("submit",function(event){});

在我的经验中,点击事件中的代码总是首先运行。

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

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