TypeError: obj не определено и ссылается на строку с $ .each - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь добавить элемент в базу данных и перезагрузить его в моем ajax datatable. Однако каждый раз, когда я нажимаю кнопку добавления после заполнения формы, я получаю 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 Я попытался скопировать и вставить код, чтобы увидеть, пропустил ли я символ, но нет, я все еще получаю ту же ошибку. Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...