Javascript jQuery Ajax多次提交表单

Javascript jQuery Ajax多次提交表单,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我不熟悉Ajax。我目前正在使用jqueryajax将表单提交到我的数据库中,但它在我的数据库中多次发送相同的数据 以下是我的Ajax代码: $(document).ready(function () { var id_js; $(document).on('click', '.btn-success', function () { id_js = $('#ID_TXT').val(); $('form').submit(function (e)

我不熟悉Ajax。我目前正在使用jqueryajax将表单提交到我的数据库中,但它在我的数据库中多次发送相同的数据

以下是我的Ajax代码:

$(document).ready(function () {
    var id_js;

    $(document).on('click', '.btn-success', function () {
        id_js = $('#ID_TXT').val();
        $('form').submit(function (e) {
            e.preventDefault();
            e.stopImmediatePropagation();
            $.ajax({
                type: "POST",
                url: 'server.php',
                data: {
                    'Mark': 1,
                    'id': id_js,
                },
                success: function (response) {
                    $('#result').html(response);
                }
            });

            return false;
        });
    });
});

我也尝试了.one和.stopImmediateProposition,但仍然没有结果

提交处理程序不应该在单击处理程序中。每次单击该按钮时,它都会添加另一个提交处理程序。因此,当您最终提交表单时,它将按照您单击按钮的次数提交表单

如果要确保在单击按钮之前不会提交表单,请在提交处理程序中添加测试

$document.readyfunction{ var id_js; $document.on'click','btn success',函数{ id_js=$'id_TXT'.val; }; $'form'.submitFunction{ 如果id_js!==未定义{ $.ajax{ 类型:POST,, url:'server.php', 数据:{ "马克":1,, “id”:id_js, }, 成功:功能响应{ $'result'.htmlresponse; } }; }否则{ 警告您需要首先单击成功按钮; } 返回false; };
}; 我看到表单提交和Ajax调用都在做同样的工作。如果只使用AJAX调用发布数据,则不需要表单提交

我希望这对你有用


$(document).ready(function () {
    function postDataToServer() {
        var id_js = $('#ID_TXT').val();

        $.ajax({
            type: "POST",
            url: 'server.php',
            data: {
                'Mark': 1,
                'id': id_js,
            },
            success: function (response) {
                $('#result').html(response);
            }
        });       
    }

    $(document).on('click', '.btn-success', postDataToServer);
});

您是否有多个.btn success按钮?整个页面中没有一个按钮。不要将事件处理程序放在另一个事件处理程序中。每次单击都会添加另一个提交处理程序。i@SAMUEL请您为按钮事件而不是表单提交事件$document发送e.stopImmediatePropagation,好吗?单击,'.btn success',functionevent{event.preventDefault;event.stopImmediatePropagation;}@SAMUEL,你能不能澄清一下,在同一个类名的表单中有没有隐藏的按钮?另外,当您第一次单击或在随后的调用中单击时,您是否看到表单被多次提交?我尝试过使用您的方法,但不起作用相同的数据多次进入数据库谢谢您tonss@prasana Kannan很高兴我能帮助您@SAMUEL