使用 jQuery ajax 时在一个 div 中显示所有 laravel 验证错误
Show all laravel validation errors in one div when using jQuery ajax
我正在使用此 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
}
}
});
我可以在每个输入的底部显示 get Laravel 验证错误,但是
如何使用 jQuery 在 HTML 的一个框中显示所有 Laravel 验证错误格式?
显示消息的方式有很多种。您可以打印错误对象。像
var htmlErr= []
var err.errors.map((data,index)=>{
$(".comment").text(data.comment);
});
在html
<p class="comment"></p>
那你可以这样试试。更多错误信息 more class ..
它只是用于准确代码的虚拟代码我需要了解有关您的 data/object 的详细信息。
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
注意:要复制过去的代码,如果您的数据库列是“字段”,则需要:
- 您的错误部分的
id
为 field
_error_section .
- 您输入的
id
为 field
.
我正在使用此 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
}
}
});
我可以在每个输入的底部显示 get Laravel 验证错误,但是 如何使用 jQuery 在 HTML 的一个框中显示所有 Laravel 验证错误格式?
显示消息的方式有很多种。您可以打印错误对象。像
var htmlErr= []
var err.errors.map((data,index)=>{
$(".comment").text(data.comment);
});
在html
<p class="comment"></p>
那你可以这样试试。更多错误信息 more class ..
它只是用于准确代码的虚拟代码我需要了解有关您的 data/object 的详细信息。
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
注意:要复制过去的代码,如果您的数据库列是“字段”,则需要:
- 您的错误部分的
id
为field
_error_section . - 您输入的
id
为field
.