Laravel 通过 Ajax 验证:如何在 blade 中显示错误消息
Laravel Validation via Ajax: How to show error message in blade
我想验证 NID 号码是否存在。我希望通过 AJax 对密钥进行验证。
我之前没有在 ajax 中显示错误。我把这些代码写在 Jquery 中。如有错误请帮助我。
在blade
<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() returns 会自动出错。这就是为什么我没有使用任何 return json_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)
不太确定这段代码,但您可以在安慰。在成功方法中,您永远不会收到验证错误。之后,您可以尝试将错误包含在您的表单 inputs
中
我想验证 NID 号码是否存在。我希望通过 AJax 对密钥进行验证。 我之前没有在 ajax 中显示错误。我把这些代码写在 Jquery 中。如有错误请帮助我。
在blade
<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() returns 会自动出错。这就是为什么我没有使用任何 return json_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)
不太确定这段代码,但您可以在安慰。在成功方法中,您永远不会收到验证错误。之后,您可以尝试将错误包含在您的表单 inputs