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