如何在jquery中停止执行1秒

时间:2017-09-05 11:37:28

标签: javascript jquery ajax

我想使用ajax和隐藏按钮提交表单并显示消息。 我使用"async:false"进入ajax,这就是按钮没有隐藏的原因。如果我使用"async:true"那么它就可以了。

$(document).ready(function (e) {

$("#submit_form").on('submit',(function(e) {

    $('#btn1').css('display','none');
    $("#show1").css('display','block');


 e.preventDefault(e);

var chkArray = [];
var chkArray1 = [];
$('#loading').show();
var inps = document.getElementsByName('chk_url[]');

//sleep(1000);

 for (var i = 0; i <inps.length; i++) {
  var inp=inps[i];
  if($(inp).is(':checked')){
   var site_url=$('#site_urls').val(inp.value);

   $.ajax({
    url: $('#site_urls').val(), 
    type: "POST",             
    data: new FormData(this), 
    contentType: false,       
    cache: false,             
    processData:false,
    async:false,        
    success: function(data)   
    {

     if(data=='done'){

            chkArray.push($('#site_urls').val());


     }else{

       chkArray1.push($('#site_urls').val()); 
     }
    }
   });
  }

 }



}));

});

在执行ajax之前是否有另一种方法来执行隐藏代码?

我使用了"delay(1000)""sleep(1000)"。 我无法使用"setTimeout"功能。

1 个答案:

答案 0 :(得分:0)

不要在for循环中使用ajax调用,在循环外部使用

我已经更改了您的代码,让我知道它有用..

  $(document).ready(function (e) {

$("#submit_form").on('submit',(function(e) {

    $('#btn1').css('display','none');
    $("#show1").css('display','block');


e.preventDefault(e);

var chkArray = [];
var chkArray1 = [];
$('#loading').show();
var inps = document.getElementsByName('chk_url[]');

//sleep(1000);
var fd = new FormData(); 

 for (var i = 0; i <inps.length; i++) {
  var inp=inps[i];
  if($(inp).is(':checked')){
    fd.append( 'site_urls', inp.value );
  }

 }


/*send call to server start here*/

   $.ajax({
    url: $('#site_urls').val(), 
    type: "POST",             
    data: fd, 
    contentType: false,       
    cache: false,             
    processData:false,
    async:false,        
    success: function(data)   
    {

     if(data=='done'){

            chkArray.push($('#site_urls').val());


     }else{

       chkArray1.push($('#site_urls').val()); 
     }
    }
   });

/*send call to server ens here*/

}));

});