使用jquery / js提交表单后延迟页面重定向?

时间:2011-06-09 10:39:50

标签: javascript jquery

我的代码是:

<input class="toBasketButton" type="submit" value="">

2 个答案:

答案 0 :(得分:3)

这样的东西?

$(function(){
    $('input.toBasketButton').click(function(event){
        event.preventDefault();
        var button = this;
        window.setTimeout(function(form){
            $(form).submit();
        }, 1000, $(button).closest('form'));
    });
});

<form action="" method="post">
    <input class="toBasketButton" type="submit" value="Submit">
</form>

Working example

答案 1 :(得分:0)

您可以尝试使用jQuery的ajaxForm插件(http://jquery.malsup.com/form/

这使您可以通过ajax提交表单,这意味着您永远不会离开页面直到您想要。通过这种方式,您可以让用户提交,执行您需要做的任何事情,一旦您像往常一样通过JS或PHP重定向。用户不会知道差异 - 延迟看起来与他们相同,但您可以在提交点击和重定向之间获得所有控制权,从而可以执行您需要的任何其他操作。

示例:

$(form).ajaxForm({
    dataType:  "json", 
    success:   myFormSubmissionIsDone, 
    url: "/some/controller/action/", 
    type: "post", timeout: 30000
});

function myFormSubmissionIsDone() { 
      // This and that, whatever you need to do...
      window.location = "/newlocation/redirecting/now/yay";
 }