Modal disappear after 3 seconds

1

I have a upload form that has been successful, a modal appears.

 <form method="post" id="form-upload" novalidate enctype="multipart/form-data">
        <label for="email" style="font-weight: normal"><strong>Formato permitido:</strong> JPG, JPEG e PNG<br><strong>Tamanho da imagem:</strong> 1170 x 300</label>
         <div class="md-group-add-on">
          <span class="md-add-on-file">
              <button class="btn btn-primary waves-effect waves-light">Foto</button>
          </span>
      <div class="md-input-file">
          <input type="file" id="fotoCapa" name="FotoCapa"/>
          <input type="text" class="md-form-control md-form-file">
          <label class="md-label-file"></label>
      </div>
    </div>
        <div id="sucesso"></div>
    </form>

<script type="text/javascript">
$(function(){
    $('#fotoCapa').change(function(e) {
      e.preventDefault();
      var formData = new FormData();
      formData.append('FotoCapa', $('#fotoCapa').prop('files')[0]);
      $.ajax({
          url: 'alterar-foto-capa.php',
          data: formData,
          type: 'post',
          success: function(response){

             var status = JSON.parse(response);

              if(status.Status === 0){
                  $('#sucesso').html("<div class='alert alert-success'>A foto foi alterada com sucesso!</div>");
                  $('#fotoCapa').val("");
              }else{
                 $('#sucesso').html("<div class='alert alert-danger'>" + status.Status + "</div>");
             }
              console.log(response);
          },
          processData: false,
          cache: false,
          contentType: false
      });
   });
});
</script>

I wish after 3 seconds the modal disappears. I tried the code below, but it did not work:

<script>
$(document).ready(function(){
 $("div.alert").fadeIn( 300 ).delay( 3000 ).fadeOut( 400 );
});
</script>
    
asked by anonymous 03.07.2018 / 17:46

2 answers

1

Your code is working, but you have to put it AFTER if :

if(status.Status === 0){
   $('#sucesso').html("<div class='alert alert-success'>A foto foi alterada com sucesso!</div>");
   $('#fotoCapa').val("");
}else{
   $('#sucesso').html("<div class='alert alert-danger'>" + status.Status + "</div>");
}
$("div.alert").fadeIn( 300 ).delay( 3000 ).fadeOut( 400 );

Example:

if(0 === 0){
   $('#sucesso').html("<div class='alert alert-success'>A foto foi alterada com sucesso!</div>");
   $('#fotoCapa').val("");
}else{
   $('#sucesso').html("<div class='alert alert-danger'>" + status.Status + "</div>");
}
$("div.alert").fadeIn( 300 ).delay( 3000 ).fadeOut( 400 );
.alert{
   display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><divid="sucesso"></div>
    
03.07.2018 / 18:02
0

I would do so

if(status.Status === 0){
              $('#sucesso').html("<div class='alert alert-success'>A foto foi alterada com sucesso!</div>");
              $('#fotoCapa').val("");
              setTimeout('$("div.alert").fadeOut( 300 )', 3000);
}

OR

  if(status.Status === 0){
          $('#sucesso').html("<div class='alert alert-success'>A foto foi alterada com sucesso!</div>");
          $('#fotoCapa').val("");

          setTimeout(function(){
              $("div.alert").fadeOut( 300 )
          }, 3000);

  }

link

    
04.07.2018 / 03:21