2

Spring Mvcアプリケーションがあり、ユーザーが送信ボタンをクリックして、 「トランザクションが成功しました」のようにjqueryダイアログが表示されるか、ダイアログにエラーメッセージが表示されるビューに戻ったときに必要です。

現在、トランザクションが成功した場合、またはエラーが発生した場合にフォームがコントローラーに到達すると、model.addAttribute('ServerResponse'、'Transaction Was success')またはmodel.addAttribute('ServerResponse'、e)を設定します。

' ServerResponse 'をダイアログに戻したいのですが、 jqueryをアタッチするのに最適なイベントが何であるかわかりません。すでにサーバーへの投稿を使用していて、 JavaScriptがオフになっている場合は、Webサービスを作成したくありません。

ServerResponse要素に値が設定されたら、ServerResponseのダイアログを表示するための最良の方法を教えてもらえますか。最初にフォームがロードされるとき、ServerResponseは空である必要があります。

私がここで達成しようとしていることを十分に明確にしたことを願っています。

編集済み

これは私が行っていることですが、divが作成された時点で実際に表示されているサーバーから戻ったときに、関数が実行されていません。

<div id="dialog" title="Server Response">
            <p>
                <span class="ui-icon ui-icon-info" style="float: left; margin: 0 7px 50px 0;"></span>
                ${results}
            </p>

        </div>

 $(function() {

         var serverResponse = $('#serverResponse').val().length;

            alert(serverResponse);

         if(serverResponse != 0){

             alert(serverResponse);
             $("#dialog").dialog();              
         }

      });
4

1 に答える 1

1

ビューレイヤーで使用しているテンプレート言語を使用して、モデルからdivにメッセージを出力します。何かのようなもの:

<div id="serverResponse"><%= serverResponse %></div>

それに応じてスタイルを設定し、そのページのjquery(jquery UIを使用)で次のようにします。

$(function() {
  $("#serverResponse").dialog();
}

そして、あなたが望むどんなスタイリングもしてください。プレーンなdivは、JavaScriptがない場合は表示され、JavaScriptがある場合はダイアログに取り込まれます。複製されたコンテンツを使用noscriptして、ダイアログに取り込まれる前のコンテンツの瞬間的なフラッシュを排除できます。

于 2012-10-15T02:41:08.517 に答える