setTimeout仅在1000ms下工作

DLO*_*DLO 4 javascript jquery settimeout

我希望有一个超时功能,所以当提交表单时,提交后两秒显示警报.我使用的代码不起作用:

$(document).ready(function() {
  $("#newsletter").submit(function() {
     setTimeout(function() {
      alert("submitted");             
    }, 2000);
   });
});
Run Code Online (Sandbox Code Playgroud)

但是当我将2000ms更改为900时似乎工作正常:

$(document).ready(function() {
  $("#newsletter").submit(function() {
    setTimeout(function() {
     alert("submitted");              
   }, 900);
  });
});
Run Code Online (Sandbox Code Playgroud)

如何让2000ms工作?

tec*_*bar 5

唯一可能的原因是你form的提交被提交,用户action在2秒之前被带到新页面(表格).

正如Thilo的评论中所建议的,如果显示警报是不可避免的,请通过AJAX提交,以便当前页面(包含警报代码)保持不变并因此执行.

  • 解决方案是不加载全新页面,而是通过Ajax提交数据. (2认同)