首页 > 解决方案 > TypeError: obj is undefined 并且引用了带有 $.each 的行

问题描述

我正在尝试将项目添加到数据库并将其重新加载到我的 ajaxdatatable中。但是,每次填写表单后单击添加按钮时,我都会TypeError: obj is undefined进入浏览器控制台,并且该项目不会添加到数据库中,也不会添加到datatable. 错误是指带有$.each(res.errors, function(key,value). 如何解决这个问题?或者有没有其他方法可以做到这一点。

另一种情况是我单击添加按钮而不填写表单,因此将添加一些样式类以警告用户必须填写表单,并且代码有效。

我使用 Firefox 和 Laravel。

仅当我填写表格并单击添加时才会显示该错误。

$('#modal-btn-save').click(function(e){
e.preventDefault()

var form = $('#modal-body form'),
    url = form.attr('action'),
    method = $('input[name=_method]').val() == undefined ? 'POST' : 'PUT'

$.ajax({
    url: url,
    method: method,
    data: form.serialize(),
    success: function(response){
        form.trigger('reset')
        $('#datatable').DataTable().ajax.reload();
    },
    error: function(xhr){
        var res = xhr.responseJSON;
        if ($.isEmptyObject(res) == false){
            $.each(res.errors, function(key,value){ 
                $('#' + key)
                    .closest('.form-group')
                    .addClass('has-error')
                    .append('<span class="help-block"><strong>' + value + '</strong></span>')
            })
        }
    }
})})

我希望该项目将像本教程一样添加到数据表中,并且控制台中没有 TypeError 消息。https://www.youtube.com/watch?v=B2CeceGOVy8我尝试复制粘贴代码以查看是否遗漏了一个字符,但不,我仍然遇到同样的错误。请帮忙。

标签: javascriptajaxobjectdatatabletypeerror

解决方案


推荐阅读