-2

フォームをタイムアウト配列に接続する際に問題が発生しています。送信する前に 5000ms タイムアウトして DELAY を表示したい。

HTML

<form name="thisform" action="" method="get" onsubmit="window.open('http://www.mydomain.com/'+document.thisform.url.value,'_self');return false;">
   <input name="url" type="text" />
   <input name="submit" type="submit" value="Go!" />
</form>

Javascript

$('thisform').submit(function (e) {
    var form = this;
    e.preventDefault();
    setTimeout(function () {
        form.submit();
    }, 1000); // in milliseconds

    $("<p>Delay...</p>").appendTo("body");
});
4

1 に答える 1

2

間違ったセレクターを使用しています。

を に変更$('thisform')$('form[name="thisform"]')ます。最終的なコードは次のようになります。

$('form[name="thisform"]').submit(function (e) {
    var form = this;
    e.preventDefault();
    setTimeout(function () {
        form.submit();
    }, 1000); // in milliseconds

    $("<p>Delay...</p>").appendTo("body");
});

説明

セレクターは の$('thisform')ような任意のタグを選択します<thisform>。したがって、nameasを使用したフォームがあるthisformため、のようなセレクターを使用する必要があります$('form[name="thisform"]')。あなたがそれを得る願っています。

于 2013-03-03T15:06:37.603 に答える