私は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のソリューションを好むだろう
使用するプロセスがわかるようにコードを投稿してください。 –
私はあなたのフォームデータをPHPスクリプトや他のサーバサイドCGIに投稿しているとします。それはあなたのデータを処理し、ブラウザがexelドキュメントを解析できないのでダウンロードを強制するapplication/excel mimetypeを返します。したがって、フォームを送信した実際のページは変更されません。私が見る限り、AJAX経由でデータを送信する必要があります.Exampleファイルを一時的にサーバーに保存し、AJAX呼び出しの成功メソッドへのリンクを返します。このリンクは 'document.location = link;'で開き、強制的にダウンロードを強制します。 – buschtoens
@silvinci:たくさんの異なるページ(20-30種類のサーブレット)からこれらのExcelファイルを取得するので、Javaソースを変更すると多くの作業が発生します。 – Georg