我在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
所以有人帮我解决了!谢谢
答案 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
,以确保它们显示在表单上方,但这只是问题偏好。