2012-01-10 20 views
0

私はHTMLフォームを持っています。送信されると、Excelファイルが作成され、返されます。 他のすべてのフォームでは、onSubmit機能で表示され、document.ready機能で非表示の読み込み画面がありますが、ファイルが返されたときにはdocument.readyがないので、読み込み画面が隠れません。フォームのjQueryローディング画面のファイルレスポンス付き

jQueryフォームプラグインをコールバック関数で試してみましたが、このようにして他のフォームのレスポンスページを正常に表示できませんでした。同じことがコールバックのある$.post()関数の場合です。

私が欲しいのは、フォーム提出が完了したときに私のloadingScreenHide関数を呼び出すことです。それ以外は普通のままにしておきます。

アイデア?

ありがとうございました。私がしようと試み

コードは次のようである:フォームで は、コールバック関数(trueを返す; doesntのが動作するように見える)プラグイン:。 $( 'フォーム')ajaxForm(関数()){activateDeactivateScreen( '隠された'; trueを返します。 });

または代わりに投稿付き: $ .post($( 'form')。attr( 'action')、$( 'form')。serialize()、function(){activateDeactivateScreen( 'hidden'); trueを返す;});

私はコールバックを持っていけないと私は通常の投稿/ページのロード

を持っていけないのコールバックを取得するときに、私はまたに私のJavaサーバページを変更する考えを持っていた通常の提出を使用する場合2つの主要な問題です一時的とダウンロードにリダイレクトファイルを保存しますが、この方法では、私は約20-30 Javaソースを変更する必要がありますので、私はjavascriptのソリューションを好むだろう

+0

使用するプロセスがわかるようにコードを投稿してください。 –

+0

私はあなたのフォームデータをPHPスクリプトや他のサーバサイドCGIに投稿しているとします。それはあなたのデータを処理し、ブラウザがexelドキュメントを解析できないのでダウンロードを強制するapplication/excel mimetypeを返します。したがって、フォームを送信した実際のページは変更されません。私が見る限り、AJAX経由でデータを送信する必要があります.Exampleファイルを一時的にサーバーに保存し、AJAX呼び出しの成功メソッドへのリンクを返します。このリンクは 'document.location = link;'で開き、強制的にダウンロードを強制します。 – buschtoens

+0

@silvinci:たくさんの異なるページ(20-30種類のサーブレット)からこれらのExcelファイルを取得するので、Javaソースを変更すると多くの作業が発生します。 – Georg

答えて

0

ajaxSetup

$.ajaxSetup({ 
complete:function(){ 
$("#loadingScreenID").hide(); 
} 
}); 

で完全なコールバックを指定しますそしてそのその後の定期的な投稿

$.post(); 
+0

$ .post()関数を使用すると画面が表示されますが、ダウンロード用に表示されていないか、他のフォームが応答ページにリダイレクトされていません。これはどうすればできますか? – Georg

+0

@silvinciのコメントを見る – Rafay

関連する問題