这是我的视图(Ajax)
$('#basicInfoForm').submit(function(e){
e.preventDefault();
let formData = new FormData(this);
$.ajax({
type: "POST",
url: "{{route('profile.basic_info')}}",
dataType: 'json',
data: formData,
contentType: false,
processData: false,
beforeSend:function(){
$("#fountainG").fadeIn(1000);
},
success: function(response){
$.each(response.errors, function (key, value) {
$("#fountainG").fadeOut(1000);
$('.alert-danger').fadeIn(2000);
$('.alert-danger').append('<span>'+value+'</span>'+'<br>');
setTimeout(function() {
$('.alert-danger').fadeOut(4000, 'swing');
}, 3000);
});
},
error: function(data){
iziToast.error({
title: 'Upload Error',
message: data.avatar,
position: 'topRight'
});
}
});
});
这里是控制器
public function updateBasicInformation(Request $request)
{
$basic_info = Validator::make($request->all(), [
'fullname' => 'required|min:2|max:255',
'phone_number' => 'required|numeric|min:10',
'email' => 'required|unique:users',
'country' => 'required',
'address' => 'required',
], [
'phone_number.min' => "The phone number must be at least 10 digits",
]);
if($basic_info->fails())
{
return response()->json([
'errors'=> $basic_info->errors()->all()
]);
}
}
基本上,这里有一个ID为
的表单basicInfoForm
和类为-alert-danger
的div显示错误。但是,当我多次提交表单时,它继续重复错误,即使是那些已经正确验证的错误。
误差
请问我怎么绕过这个?
我试着将dataType
改为json
,但没有任何区别。
我是Ajax和Laravel的新手
每次提交时清除UI中的所有错误:
$('#basicInfoForm').submit(function(e){
e.preventDefault();
$('.alert-danger').remove();
// ...
});
在每次提交调用时都附加错误,而不清除先前的错误。你可以这样做来解决这个问题
从DOM中删除先前的错误div,并在AJAX成功时添加新的错误div。
success: function(response){
$('.alert-danger').remove();
$.each(response.errors, function (key, value) {
//
}