javascript - 如何让jquery停止执行1秒

标签 javascript jquery ajax

我想使用ajax提交表单并隐藏按钮并显示消息。 我在 ajax 中使用了“async:false”,这就是按钮不隐藏的原因。如果我使用 "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" 函数。

最佳答案

不要在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*/

}));

});

关于javascript - 如何让jquery停止执行1秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46054069/

相关文章:

javascript - js.erb 渲染到布局中,未执行

java - 将 Long 数组传递给 JSNI 函数

javascript - 作为 Prototype 用户,我应该注意哪些 jQuery 烦恼?

javascript - 如何通过过滤和修改其他对象来动态创建对象而不改变层次结构?

javascript - 相对于页面上滚动位置的视觉计数器

javascript - 在 Chrome 中,页面不会在 Ajax 加载后调整大小

javascript - 如何将 Canvas 转换为图像以上传到 flask ?

javascript - 箭头主体周围有意外的 block 语句?为什么我不能回来?

javascript - 在 IE7 和 IE8 中为 IXMLHttpRequest 对象赋值时出现异常

javascript - 当元素底部超过点时移除类