Javascript 通过Ajax进行Laravel验证:如何在blade中显示错误消息

Javascript 通过Ajax进行Laravel验证:如何在blade中显示错误消息,javascript,jquery,ajax,laravel,laravel-validation,Javascript,Jquery,Ajax,Laravel,Laravel Validation,我想验证NID编号是否存在。我希望通过AJax对密钥进行验证。 我以前没有在ajax中显示错误。我用Jquery编写这些代码。如果我有任何错误,请帮助我 刀片式 <div class="form-group row"> <label for="nid" class="col-sm-2 col-form-label"> NID Number<sup class="text-danger">*</sup> </la

我想验证NID编号是否存在。我希望通过AJax对密钥进行验证。 我以前没有在ajax中显示错误。我用Jquery编写这些代码。如果我有任何错误,请帮助我

刀片式

<div class="form-group row">
    <label for="nid" class="col-sm-2 col-form-label">
        NID Number<sup class="text-danger">*</sup>
    </label>
    <div class="col-sm-10">
        <input type="text"
               class="form-control {!! $errors->has('nid_number') ? 'is-invalid' : 'is-valid' !!}"
               placeholder="ভোটার আইডি" id="nid"
               name="nid_number" value="{{ old('nid_number') }}">
        @error('nid_number')
        <span class="invalid-feedback" role="alert">
            <strong>{{ $message }}</strong>
        </span>
        @enderror
    </div>
</div>
内部控制器

public function ajaxValidation(Request $request)
{
    if ($request->ajax()) {
        $this->validate($request, [
            'nid_number' => 'unique:members',
        ]);
    }
}
我认为这个validate()会自动返回错误。这就是为什么我没有使用任何
返回json\u enconde()

现在,请帮助我如何显示错误。提前谢谢。抱歉耽误了你的时间

您可以这样检查验证:

public function ajaxValidation(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'nid_number' => 'unique:members',
        ]);
        if ($validator->passes()) {
            return response()->json(['status' => '1']); // success
        }
        return response()->json(['status' => '0'); // not success
    }

在ajax部分,您缺少错误部分

error:function(data)
{
   console.log(data);
}

这是您将收到laravel验证错误的部分,类似于
console.log(data.responseJSON.errors)
不确定这段代码,但您可以在控制台中找到。在成功方法中,您将永远不会收到验证错误。之后,您可以处理错误以将其包含在表单输入中

这是一个可以帮助您的链接:修改您执行ajax请求的方式并使用
.fail()
将简化显示错误的方式。通过json返回
ajaxValidation
的输出。用ajax捕捉并显示错误如何从validate($request)返回错误?你能告诉我吗@TalhaF。请从
ajaxValidation
提供您的JSON响应代码,我只想检查NID是否存在<代码>如果($request->ajax()){$this->validate($request,['nid_number'=>'unique:members',]);}这是验证代码。当我正常提交表单时,它会自动返回错误。但是我不知道如何在json中发送错误,这就是我为什么问的原因。那么如何处理来自ajax的错误呢?在ajax中,它总是说错误的地方是更新的ajax代码,
$(document).on('keyup','nid',function(){var request=$.ajax({url:{route('ajax-validation')}}),method:'POST',data:{query:$(this.val()},})。fail(function(){alert('error'))完成(函数(){alert('done')});}它总是在运行。
fail()
刚刚检查了控制台<代码>dd($request)
为空。
public function ajaxValidation(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'nid_number' => 'unique:members',
        ]);
        if ($validator->passes()) {
            return response()->json(['status' => '1']); // success
        }
        return response()->json(['status' => '0'); // not success
    }
error:function(data)
{
   console.log(data);
}