2011-06-09 15 views
-1

私のコードは次のようになります。このようなjquery/jsを使用してフォームを送信した後に遅延ページリダイレクト?

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

私は質問を理解していない、申し訳ありません - ディレイページがリダイレクト何ですか?あなたは何とかリダイレクトしたいのですか、またはフォームの送信を傍受してから何かをすることを求めていますか? – Rup

+0

@Rup別のページの読み込みが遅れてからフォームを送信したい – easyrider

+0

実際の質問を含めるのを忘れてしまった。あなたはちょうど1行のコードを掲示しました。 –

答えて

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

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"; 
} 
関連する問題