0

我有以下用于提交表单的代码:

$('form').submit(function () {
    ...
}

在输入此提交事件之前,我想等待用户大约 2 秒钟。可能的?也许是一个 beforesubmit 事件?

谢谢。

4

1 回答 1

1

尝试:

$('form').submit(function (e) {
  setTimeout(function() {
    $(this).submit();
  }, 2000);
  e.preventDefault();
}

使用 e.preventDefault() 您可以取消表单的默认行为(例如,提交)。然后你创建一个超时来执行真正的提交。

也许您应该设置一个标志,因为使用 .submit() 可能会触发您正在收听的“提交”事件。如果是这样,请尝试:

var attach_timeout = true;

$('form').submit(function (e) {
  if (attach_timeout) {
    setTimeout(function() {
      $(this).submit();
    }, 2000);
    attach_timeout = false;
    e.preventDefault();
  }
}
于 2012-04-15T16:17:39.407 回答