Laravel - ajax创造双重输入

时间:2016-11-29 10:24:40

标签: ajax laravel

我已经发出了这个ajax请求来显示验证错误并阻止页面重新加载

$(document).on('mousedown', ':submit', function() {
    //alert('clicked submit');
    var form = $("form");
    $.ajax({
        type: 'post',
        url: '/events',
        headers: { 'X-CSRF-TOKEN': "{{csrf_token()}}" },
        data: form.serialize(),
        dataType: 'json',
        success: function(data){

        },
        error: function(data) {
            for(errors in data.responseJSON){
                swal({text:data.responseJSON[errors]});
            }
        }

    });
});

这段代码一切都很好!问题是成功提交后我在DB中有2个输入...我该如何防止这种情况?

1 个答案:

答案 0 :(得分:1)

您确定该表单实际上是不是通过邮寄提交和保存值,而是通过ajax提交一次?通常,如果您正在捕获提交事件,那么您仍然可以提交表单,甚至不提交提交按钮的mousedown事件,例如

$('form').on('submit', function(e) {

    // Stop the forms default submit action
    e.preventDefault();

    //alert('clicked submit');
    var form = $("form");
    $.ajax({
        type: 'post',
        url: '/events',
        headers: { 'X-CSRF-TOKEN': "{{csrf_token()}}" },
        data: form.serialize(),
        dataType: 'json',
        success: function(data){

        },
        error: function(data) {
            for(errors in data.responseJSON){
                swal({text:data.responseJSON[errors]});
            }
        }

    });
});

此外,e.preventDefault()将阻止表单与您的ajax操作一起提交。此外,您最好通过ID或类名选择表单。