2016-06-15 6 views
0

AEMにフォームがあります。送信ボタンがクリックされると、制御はforward.jspに移ります。私はforward.jspでいくつかのバリデーションを行っており、検証が失敗するとページ上で警告を生成したいと思います。アラートをページに渡すにはどうすればよいですか?AEM:サーバー側の検証後に警告ボックスを表示します。

if(condition){ 
    // validation success 
} else{ 
    // code for alert 
} 

FormsHelper.redirectToReferrer(slingRequest, slingResponse); 

答えて

0

サーバー側で検証を行いたいが、クライアント側でアラートを表示する場合は、JavaScriptを使用してAJAX呼び出しを行うことをお勧めします。送信ボタンをクリックすると、フォームが送信されずにAJAX呼び出しが発生するように変更できます。 jQueryを使用してこれを行う方法については、http://api.jquery.com/jquery.ajax/を参照してください。他のオプションもAJAXリクエストを作成するために使用できます。

そのAJAXリクエストへの応答では、あなたが必要とするものを置くことができます。これは、ステータスコード、JSONの文字列、またはHTMLの爆発的なものです。次に、クライアントサイドのJavaScriptを記述してレスポンスを処理し、ページにアラートを表示するなど、指定されたレスポンスに基づいて適切な処理を行います。このトピックhttp://michaelsoriano.com/how-to-ajax-validate-forms/

0

で見た場合

この種のアプローチの例は、あなたが考えるかもしれないより複雑です。基本的に、/libs/foundation/components/form/text/text.jspなどの基礎コンポーネントのサンプル実装を見ることができます。それらはすべてcom.day.cq.wcm.foundation.forms.LayoutHelper#printErrorsメソッドを使用して、フィールドにエラーがあるかどうかを確認します。これは、異なるクラス間でフィールド状態を転送するために、要求属性として設定されたcom.day.cq.wcm.foundation.forms.ValidationInfoクラスで発生しています。実際に検証を実行するcom.day.cq.wcm.foundation.forms.FieldHelperクラスも確認できます。 forward.jspにある種のロジックを置くのは間違った方法です

関連する問題