ajax表单提交 - 跳过url处理并直接转到成功函数?

时间:2013-12-24 06:14:03

标签: ajax jquery

之前没有遇到过ajax。点击一个按钮,我发布了一个带有ajax的表单。在成功的返回函数中,我在bootstrap 3中打开一个模态窗口,并在前一个表单提交中附加了一个参数。

我使用模态作为确认窗口来确认用户删除。我再次使用ajax然后在模式中实际删除数据库中的用户并返回成功或失败。

由于所有操作都在实际模态的ajax中处理(确认用户名存在然后执行删除操作)...有没有办法可以跳过初始表单处理?在这个示例中,除了允许我返回并将username参数附加到我打开的模态之外,p_delete_user.php'确实没有任何其他功能。

我可以以某种方式跳过此步骤,并使用附加的参数值直接进入我的成功调用。我无需在此步骤中检查参数是否有效,因为验证发生在打开的模态的ajax中。

我的ajax:

// delete user account
var deleteAccount = function() {
    $('#delete-user').on('click', function () {
        var $form = $(this).closest('form');
        $.ajax({
            type: 'post',
            url: '/spc_admin/process/p_delete_user.php',
            data: $form.serialize(),
            dataType : 'json'
        }).done(function (response) {
            if (response.success) {

                // user account exists so show confirmation modal
                $('#modal-ajax').load('/spc_admin/modals/m_delete_user.php?username='+response.username+'');
                $('#modal-ajax').modal('show');

            } 
            else 
            {
                // show error toast
                toastr.error('An error has occurred.  Please contact support.', 'Error');
            }
        });
    });

}

1 个答案:

答案 0 :(得分:1)

使用Javascript从表单中获取用户名,并将其直接放入模式中:

var deleteAccount = function() {
    $('#delete-user').on('click', function () {
        var username = $(this).closest('form').find("input[name=username]").val();
        $('#modal-ajax').load('/spc_admin/modals/m_delete_user.php?username='+encodeURIComponent(username));
        $('#modal-ajax').modal('show');
    });
}