【问题标题】:Laravel Validation via Ajax: How to show error message in blade通过 Ajax 进行 Laravel 验证:如何在刀片中显示错误消息
【发布时间】:2020-09-24 23:31:03
【问题描述】:

我想验证 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>

jquery cdn

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

ajax 代码

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

在控制器中

public function ajaxValidation(Request $request)
{
    if ($request->ajax()) {
        $this->validate($request, [
            'nid_number' => 'unique:members',
        ]);
    }
}

我认为这个 validate() 会自动返回错误。这就是为什么我没有使用任何return json_enconde() 现在帮助我我现在如何显示错误。提前致谢。对不起你的时间。

【问题讨论】:

  • 这是一些可以帮助您的链接:stackoverflow.com/questions/10931836/… 修改您执行 ajax 请求的方式并使用 .fail() 将简化您显示错误的方式。
  • 通过 json 从ajaxValidation 返回输出。并用 ajax 捕获并显示错误
  • 如何从 validate($request) 返回错误?你能告诉我吗? @TalhaF。
  • 请提供来自ajaxValidation的JSON响应代码
  • 我只想检查 NID 是否存在。 if ($request-&gt;ajax()) { $this-&gt;validate($request, [ 'nid_number' =&gt; 'unique:members', ]); } 是验证码。当我正常提交表单时,它会自动返回错误。但我不知道如何在 json 中发送错误,这就是我问的原因。

标签: javascript jquery ajax laravel laravel-validation


【解决方案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
    }

【讨论】:

  • 那么如何从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'); }).done(function () { alert('done') }); });
  • 它总是继续。fail()
  • 刚刚检查了控制台。 dd($request) 为空。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-19
    • 2021-09-03
    • 2016-09-12
    • 2020-02-14
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多