如何在视图中显示laravel和ajax的错误

时间:2017-09-28 04:45:45

标签: php jquery ajax laravel-5

我在laravel中显示错误时遇到麻烦。我正在使用 ajax 将请求表单从客户端发送到服务器并向后发送。这是我的ajax代码,似乎函数append()无效。

$('#petition-form').on('submit', function(e) {
  e.preventDefault();
  var formdata = new FormData($(this)[0]);
  formdata.append('content', tinymce.get('content').getContent());
  $.ajax({
    url: $(this).attr('action'),
    data: formdata,
    processData: false,
    contentType: false,
    cache: false,
    method: 'POST'  
  }).done(function(response) {
   window.location.href = response.slug;
 }).fail(function(response) {
   $(this).append(response);
});
});

这是我的观点

@if (count($errors) > 0)
<div class="alert alert-danger">
    <ul>
        @foreach ($errors->all() as $error)
        <li>
            {{ $error }}
        </li>
        @endforeach
    </ul>
</div>
@endif

所以有人帮我解决了!谢谢

1 个答案:

答案 0 :(得分:0)

尝试这样的事情 - 设置self变量来存储对$(this)的引用:

$('#petition-form').on('submit', function(event) {
    event.preventDefault();
    var self = $(this),
        formData = new FormData(self[0]);
    formData.append('content', tinymce.get('content').getContent());
    $.ajax({
        url: self.attr('action'),
        data: formData,
        processData: false,
        contentType: false,
        cache: false,
        method: 'POST'
    }).done(function(response) {
        window.location.href = response.slug;
    }).fail(function(response) {
        self.append(response);
    });
});

然后,您可以从视图中删除$errors引用,我可能会prepend验证消息而不是append,以确保它们显示在表单上方,但这只是问题偏好。