Javascript重定向超时表单提交

时间:2013-03-03 15:03:46

标签: javascript jquery html css

我遇到了将表单连接到超时数组的问题。我希望它超时5000毫秒并在提交之前显示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");
});

1 个答案:

答案 0 :(得分: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>之类的任何标记。因此,由于您有一个namethisform的表单,因此您需要使用$('form[name="thisform"]')之类的选择器。希望你明白。