2016-06-09 39 views
0

我正在執行驗證的模式boostrap laravel記錄。通過jquery ajax發送數據實現它。我遇到的問題是按提交按鈕關閉模式。如何保持開放模態直到validacion結束?謝謝modal在驗證過程中保持打開狀態

模式:

<!--- Register Modal --> 
    <div class="modal fade" id="Register" role="dialog"> 
     <div class="modal-dialog"> 

      <!-- Modal content--> 
       <div class="modal-content"> 
       <div class="modal-header"> 
         <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h4 class="modal-title">Registro</h4> 
      </div> 
      <div class="modal-body"> 


      <form class="form" role="form" id="new-user" data-token="{{ Session::token() }}" method="post" > 
         {{ csrf_field() }} 

       <div id="error"> 
        <!-- error will be showen here ! --> 
       </div> 

        <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}"> 
         <label for="name">Nombre completo: </label> 
         <input id="name" type="text" class="form-control" name="name" value="{{ old('name') }}"> 

           @if ($errors->has('name')) 
            <span class="help-block"> 
             <strong>{{ $errors->first('name') }}</strong> 
            </span> 
           @endif 
        </div> 


       <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}"> 
        <label for="email">Correo electronico: </label> 
        <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}"> 

           @if ($errors->has('email')) 
            <span class="help-block"> 
             <strong>{{ $errors->first('email') }}</strong> 
            </span> 
           @endif 
       </div> 

       <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}"> 
        <label for="pwd">Contraseña:</label> 
        <input id="password" type="password" class="form-control" name="password"> 

           @if ($errors->has('password')) 
            <span class="help-block"> 
             <strong>{{ $errors->first('password') }}</strong> 
            </span> 
           @endif 
       </div> 

        <div class="form-group{{ $errors->has('password_confirmation') ? ' has-error' : '' }}"> 
         <label >Confirmar contraseña:</label> 
         <input id="cpassword" type="password" class="form-control" name="cpassword"> 

           @if ($errors->has('password_confirmation')) 
            <span class="help-block"> 
             <strong>{{ $errors->first('password_confirmation') }}</strong> 
            </span> 
           @endif 
        </div> 

       <!-- <input type="hidden" name="_token" value="{{Session::token()}}"> seguridad --> 
       <button type="submit" class="btn btn-default" id="Submit" >Registro</button> 

       <div> 
     <!-- boton login facebook--> 
     <div> 
      <a href="/login-facebook" class="login-facebook" </div><span data-reactid=".1.0.1.2.1:0">Facebook</span></a> 
      </div> 

     <!-- boton login google--> 
      <div> 
      <a href="/login-google" class="login-google" </div><span data-reactid="">Google</span></a> 
      </div> 
      </div> 



     </form> 

     </div> 

     </div> 

    </div> 
    </div> 

JS:

function send(event){ 
    event.preventDefault(); 

     $.ajax({ 

      type: 'post', 
      url: "{{url('/register')}}", 
      data: { 
       name: $('#name').val(), 
       email: $('#email').val(), 
       password: $('#password').val(), 
       cpassword: $('#cpassword').val(), 
       _token: $('#new-user').attr('data-token') 
      }, 
      success: function (data) { 
        $("#error").fadeIn(1000, function() { 

        $("#error").html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span> &nbsp; ' + data + ' !</div>'); 

       }); 

       } 

     }); 

} 

回答

0

我只想給你一個簡單的驗證示例。你可以用它自己的方式 並隱藏,如果模式只需添加$("#Your Modal ID ").modal("hide");您的莫代爾ID是註冊,然後使用$("#Register").modal("hide");,它會關閉

function send(event){ 
    event.preventDefault(); 

    if((!$('#name').val())||(!$('#email').val())||(!$('#password').val())) 
    { 
    alert("Please Fill All The Details !") 
    } 
else{ 

     $.ajax({ 

      type: 'post', 
      url: "{{url('/register')}}", 
      data: { 
       name: $('#name').val(), 
       email: $('#email').val(), 
       password: $('#password').val(), 
       cpassword: $('#cpassword').val(), 
       _token: $('#new-user').attr('data-token') 
      }, 
      success: function (data) { 
        $("#error").fadeIn(1000, function() { 

        $("#error").html('<div class="alert alert-danger"><span class="glyphicon glyphicon-info-sign"></span> &nbsp; ' + data + ' !</div>'); 


       }); 
       $("#Your Modal ID ").modal("hide"); 
       } 

     }); 
    } 
} 
+0

你好,這個問題不驗證。我想要的是,按下提交後,模態仍然打開 –

+0

@RecoJhonatan只需添加'$(「Your Modal ID」).modal(「hide」);'如果你的ID是Register,然後使用'$(「#Register」) .modal(「hide」);'它會關閉 –

+0

ajax可以通過按鈕類型的'按鈕'而不是提交? –

0

我不知道你是怎麼調用JS send()功能..所以我不知道你是否阻止表單提交。無論如何:

您的模態不應該在提交表單時關閉,除非表單真的被髮送並且您的頁面重新加載。

爲了防止表單被提交和當前頁面重新加載:

$('#new-user').submit(function(e) { e.preventDefault; }); 

,並關閉模式在ajax.success功能嘗試使用:

$('#Register').modal('hide'); 
相關問題