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

时间:2020-06-05 17:12:58

标签: javascript jquery ajax laravel laravel-validation

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

在刀片中

@commands.command()
async def profile(self, ctx, *, user: discord.Member = None):
    """Profile"""
    if user == None:
      user = ctx.author
    server = ctx.guild
    print(ctx.author.public_flags.all())
    ..........

jquery cdn

<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>

ajax代码

<script src="https://code.jquery.com/jquery-2.2.4.min.js" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script>

在控制器中

$(document).on('keyup', '#nid', function(){
    $.ajax({
        url:"{{ route('ajax-validation') }}",
        method:'POST',
        data:{query:$(this).val()},
        dataType:'json',
        success:function(data)
        {
            alert(data);
        }
    })
});

我认为此validate()自动返回错误。这就是为什么我不使用任何public function ajaxValidation(Request $request) { if ($request->ajax()) { $this->validate($request, [ 'nid_number' => 'unique:members', ]); } } 现在帮助我如何立即显示错误。提前致谢。很抱歉您的时间。

2 个答案:

答案 0 :(得分:1)

您可以像这样检查验证:

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
    }

答案 1 :(得分:1)

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

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

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