使用jQueryajax时,在一个div中显示所有laravel验证错误



我使用这个ajax请求来使用jQuery:发送请求

$.ajax({type: 'POST',
url: '/send-review',
data: {
"_token": "{{ csrf_token() }}",
"_id": {{$item->id}},
},
success: function (data) {
console.log(data);
},
error: function (err) {if (err.status == 422) { 
// when status code is 422, it's a validation issue
}
}
});

我可以在每个输入的底部显示getLaravel验证错误,但是如何使用jQuery在一个HTML框中显示所有的Laravel验证错误格式?

有很多方法可以显示消息。您可以打印错误对象。像

var htmlErr= []
var err.errors.map((data,index)=>{
$(".comment").text(data.comment);  
});

在html 中

<p class="comment"></p>

那么你可以试试这样。有关更多错误消息,请参阅更多类别。。

这只是一个伪代码,我需要了解有关数据/对象的详细信息。

laravel 8

我总是用这个:

$.ajax({type: 'POST',
...
success: function (data) {
console.log(data);
},
error: function (err) {
if (err.status == 422) { 
toastError(err.responseJSON.message);
let details = res.responseJSON.errors ;
Object.keys(details).forEach(field => {
formatErrorUsingClassesAndPopover(field,details[field]);
});
}
}
});

对于格式化答案,实现formatErrorUsingClassesAndPopover( element , array_of_problems )使其尽可能抽象。例如(使用Bootstrap和jQuery(:

function formatErrorUsingClassesAndPopover(element , array_of_problems ){
let someHTML = '';
array_of_problems.forEach(function(e){someHTML+='<li>'+e+'</li>'});
$('#'+element+'_error_section').html('<ul>'+someHTML+'</ul>');
$('#'+element).addClass('is-invalid');
}
...
//don't forget to use this in the ajax success function :
$('input').removeClass('is-invalid');//or you can let the client side validation do it 

注意:若要复制此代码,您需要:如果数据库列为"字段",则需要:
  • 您的错误部分的idfield_error_section
  • 您的输入的idfield

相关内容

  • 没有找到相关文章

最新更新