0

ユーザーがデータを入力した後、おめでとうございますという警告メッセージを表示しようとしています。問題は、コントローラーで入力を検証することです。エラーが発生した場合は、適切な変数をビューに渡して、正しくないフィールドを強調表示しますが、おめでとうアラート ボックスを表示する方法がわかりません。これは私が試したものですが、うまくいきません。何か助けはありますか?ありがとう!

//In my ImplementNewPixel.gsp
<script>
         $.ajax({
                success:function(result){
                    if(result.message != null && result.message != ""){
                        alert(result.message);
                    }
                }
            });      
</script>

//In my actionsController:
def validate = {

    String message = ""

    if(Info is not valid){
       //return appropriate info to highlight incorrect textfields
    }

    else{
       message = "Congratulations your tracking pixel has been created and added!" as JSON
    }

    return [message: message, OtherStuff: OtherStuffThatIPassToMyGSP]
}

これは私の正確なコードではありません。この問題に関係する主なものだけを含めました。

4

2 に答える 2

1

次のように、コントローラー アクションのモデルでメッセージ変数を返すだけです ( http://grails.org/doc/latest/guide/theWebLayer.html#modelsAndViewsを参照)。

return [message : message]

...そして、gsp で ${message} を使用して、次のように値を取得します。

alert("${message}")
于 2013-08-16T21:49:30.837 に答える
0

ajax を使用しているため、JavaScript ライブラリが理解できる形でモデルを返す必要があります。応答のコンテンツ タイプによってデータ型を自動的に決定する jQuery を使用しているようです。

class MyController {
    def validate() {
        return [message: "hello there"] as JSON
    }
}
于 2013-08-16T22:20:55.703 に答える