我有一个模态的表单,我想重定向到带有所有错误的模态,但它似乎不起作用,这里是控制器中的验证器
$validator = Validator::make($request->all(), [
'company' => 'required|string|max:255',
'description' => 'required|string|max:300',
'engineers' => 'required',
]);
if ($validator->fails()) {
return redirect()->back()->withErrors($validator)->withInput();
}
这是我的刀片视图中的jquery,我的模态被激活了
@if (count($errors) > 0)
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
$('#create').modal('show');
</script>
@endif
我的模态的原型
<div class="modal fade container" id="createProject">
{!! Form::open([ 'route' => 'projects.store']) !!}
<div class="modal-content" id="create">
@if($errors->has())
@foreach ($errors->all() as $error)
<div>{{ $error }}</div>
@endforeach
@endif
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Create Project</h4>
</div>
<div class="modal-body">
发生的事情是,在验证失败后,它只是重定向回到调用它的视图,但我必须再次单击以触发模态
答案 0 :(得分:1)
更改此部分:
@if (count($errors) > 0)
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
$('#create').modal('show');
</script>
@endif
要
@if (count($errors) > 0)
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
$(document).ready(function(){
$('#create').modal('show');
});
@endif
为什么不用AJAX提交表单并在模态仍然打开时返回错误。
答案 1 :(得分:0)
更改此行
$('#create').modal('show');
到这一行
(function($){
$('#createProject').modal('show');
})($);
您正在使用 id
来显示模型是错误的。并且您正在调用模型打开,如果DOM尚未准备就可能无效。因此,使用上面的代码更改行,它应该可以正常工作。