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 に答える