javascript - Ajax表单提交两次

标签 javascript jquery ajax

由于某种原因,即使使用 preventDefault()return false,我的 Ajax 表单也会提交两次。

<script type="text/javascript">
    $("#form_codes").submit(function(e) {
        e.preventDefault();
        $.ajax({
            data: $('#form_codes').serialize(),
            type: 'POST',
            url: '{{url('save_code')}}',
            success: function(msg) {
                         $('#product_codes > tbody:last-child').append('<tr><td>' + $('#code').val() + '</td><td>' + $('#description').val() + '</td></tr>');
                         $('#code').val('');
                         $('#description').val('');
                     },
            error: function(msg) {

                   }
        });         
        return false;
    });
</script>

最佳答案

尝试将 e.stopImmediatePropagation() 添加到提交事件,因为它会阻止所有其他事件执行,因此这可能会停止第二个表单提交。

<script type="text/javascript">
                $("#form_codes").submit(function(e) {
                    e.preventDefault();
                    e.stopImmediatePropagation();
                    $.ajax({
                        data: $('#form_codes').serialize(),
                        type: 'POST',
                        url: '{{url('save_code')}}',
                        success: function(msg) {
                            $('#product_codes > tbody:last-child').append('<tr><td>' + $('#code').val() + '</td><td>' + $('#description').val() + '</td></tr>');
                            $('#code').val('');
                            $('#description').val('');
                        },
                        error: function(msg) {

                        }
                    });

                    return false;
                });
</script>

关于javascript - Ajax表单提交两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40172838/

相关文章:

javascript - "place"在此 for 循环中意味着什么

javascript - 如何控制复选框并在网格kendo ui上显示

javascript - 根据 AJAX 请求替换整个页面标记

ajax - Finatra 访问控制允许来源

jquery - 通过Ajax调用Response.redirect

javascript - 使用 javascript 继续或进入 PHP 循环

javascript - 输入 :focus only working once

javascript - 如何将一个 div 覆盖在另一个之上?

javascript - FullCalendar:更改 agendaDay 背景颜色

javascript - 关于AJAX,需要点击提交按钮两次