在event.preventDefault之后触发事件。

问题描述 投票:2回答:1

我正在捕捉表单的提交按钮上的点击。我做 event.preventDefault() 禁用默认的浏览器操作,这样我就可以在点击按钮后做我的事情。在这种情况下,我做AJAX调用服务器。通过服务器的响应,我想选择是继续提交表单还是做其他事情。

$inviteSubmitForm.find('input[name="accept"]').click(function(e){
    e.preventDefault();

    $.ajax({
        ...
        success  : function(data) {

            if (data.something) {
                ...
            } else {
                ...
            }

        }
    });
});

问题是,我无法对点击的按钮进行默认操作,因为逻辑在AJAX回调中。所以 return true 只是结束回调函数--我不能使用这个简单的技巧。同时移动 e.preventDefault() 是不可能的,因为表格会立即提交。

有什么办法吗?

javascript ajax events callback dom-events
1个回答
0
投票

触发器来提交表单。

$inviteSubmitForm.find('input[name="accept"]').click(function(e){
    e.preventDefault();

    $.ajax({
        ...
        success  : function(data) {

            if (data.something) {
                // don't submit
            } else {
                $inviteSubmitForm.submit();
            }

        }
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.