form.submit()方法中的setTimeout不起作用

时间:2013-03-14 10:47:45

标签: javascript jquery

我在表单提交中尝试setTimeout()功能。但是,在执行该函数之前,表单将被提交,并且超时函数内的任何内容都不会被执行。以下是代码段。

$(window).load(function () {
     $("#myform").submit(function() {
          setTimeout(function(){
               alert("me after 1000 mili seconds");
               return false;              
          }, 1000);

    });
};

请帮我解决这个问题...

4 个答案:

答案 0 :(得分:3)

$(window).load(function () {
     var submit = false;
     $("#myform").submit(function(e) {
          setTimeout(function(){
              alert("me after 1000 mili seconds");
              submit = true;
              $("#myform").submit(); // if you want            
          }, 1000);
          if(!submit)
              e.preventDefault();
     });
};

答案 1 :(得分:2)

表单正在提交。您需要委派默认操作。这应该适合你:

$(window).load(function () {
     $("#myform").submit(function(e) {
          e.preventDefault();

          setTimeout(function(){
              alert("me after 1000 mili seconds");
          }, 1000);
    });
});

请参阅此jsFiddle demo

答案 2 :(得分:1)

如果要在表单上禁用提交操作,可以尝试:

$(window).load(function () {
     $("#myform").submit(function(e) {
          e.preventDefault();
          setTimeout(function(){
          alert("me after 1000 mili seconds");
          return false;

        }, 1000);

    });
});

答案 3 :(得分:0)

首先,你忘记了在最后一行中的右括号)

$(window).load(function () {
     $("#myform").submit(function(e) {
          e.preventDefault();
          setTimeout(function(){
          alert("me after 1000 mili seconds");
          return false;

        }, 1000);

    });
});
 ^---- here you forgotten to put brace.