Laravel 5.4在验证后重定向到模态

时间:2017-06-27 05:35:51

标签: javascript php jquery laravel laravel-5.4

我有一个模态的表单,我想重定向到带有所有错误的模态,但它似乎不起作用,这里是控制器中的验证器

   $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">&times;</button>
            <h4 class="modal-title">Create Project</h4>
        </div>
        <div class="modal-body">

发生的事情是,在验证失败后,它只是重定向回到调用它的视图,但我必须再次单击以触发模态

2 个答案:

答案 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尚未准备就可能无效。因此,使用上面的代码更改行,它应该可以正常工作。