5

e.preventDefault() で送信を停止しているフォームがあります。(私は return false も試しました)。

コードを使用して、少し遅れてフォームを送信するように手動で指示します。

$('form').delay(2000).submit();

残念ながら、 e.preventDefault()submit()関数を使用して明示的に送信した場合でも、フォームの送信を無効にしているようです。

これらの意図をどのように組み合わせることができるか考えていますか? ロード画面を数秒間表示したいと思います。

ありがとう!

4

4 に答える 4

2

これを試して。

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
    $(document).ready(function ()
    {
        var okToSubmit = false;
        $('form').submit(function (e)
        {
            if ( ! okToSubmit)
            {
                e.preventDefault();

                var $form = $(this);
                setTimeout(function ()
                {
                    okToSubmit = true;
                    $form.submit();
                }, 2000);
            }
        });
    });
</script>
<form action="somewhere">
    <input type="text" name="something" />
    <input type="submit" />
</form>

上記のコードはテスト済みです。

于 2013-02-14T04:13:37.397 に答える
2
$("form").on('submit.blocker', function (e) {
    setTimeout(function () {
        $("form").off('submit.blocker').trigger('submit');
    }, 2000);
    e.preventDefault();
});
于 2013-02-14T02:01:34.457 に答える
1
$('form').on('submit', function(e) {
    if (!e.isTrigger) {
        setTimeout(function() {
            $("form").trigger('submit');
        }, 2000);
        e.preventDefault();
    }
});
于 2013-02-14T02:47:54.010 に答える
0

あなたはこれを試してみたいと思うかもしれません:

<form name="demo" action="111" onSubmit="fun();return false">
<input type="text" name="name1" />
<input type="submit" />
</form>

そしてJavaScriptで

fun()
{
var x= document.forms["demo"];
setTimeout(x.submit(),2000);//time in milliseconds
}
于 2013-02-19T11:56:51.467 に答える