Grails RemoteForm,Ajax不起作用

时间:2011-10-18 08:55:38

标签: ajax grails

我是Grails的新手,我在Ajax上遇到了一些麻烦(所以我可能错过了一些东西)。在我的主要gsp上,我想要一个选择框,当我点击它的选项时,会在同一页面上显示另一个字段以选择其他内容。由于第二部分的内容是动态的,我需要somme Ajax。无论如何我还没有成功。这是我的代码:

main.gsp

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="layout" content="main" />
    <title>Sample title</title>
    <g:javascript library="jquery"/>
  </head>
  <body>
    <h1>Selection de l'email</h1>
    <div class="dialog">
        <g:select name="selectTemplate"
                  from="${templateCategories}"
                  value="category"
                  noSelection="['':'--- choisissez un modèle ---']"
                  onchange="${remoteFunction(
                      controller:"email"
                      action:"printTestTemplate"
                      update:"listTemplates"
                      params:'\'category=\'+this.value'
                      )}"
                  />
          <div id="listTemplates">RRR</div>
      </div>
   </body>
</html>

EmailController

def printTestTemplate = {
    println params.category //doesn't print anything
    println "YEAAAAAAAAAH"  //the same
    render(view:"formSelectTemplate", model:[templates:EmailTemplate.findByCategory(params.templateCategory)])
}

formSelectTemplate.gsp

<h1>YOUHOUUU !</h1>

我都试图调用视图或模板(通过重命名gsp),但没有任何效果。不过我不明白,我跟着官方文件。请注意,HTML结果在选择框中没有创建任何事件,并且Firebug告诉我没有404.所以我一定错过了创建框的内容。

在HTML中选择结果:

<select id="selectTemplate" name="selectTemplate">  
    <option value="Refus">Refus</option>  
    <option value="Informations complémentaires">Informations complémentaires</option>  
</select>  

1 个答案:

答案 0 :(得分:1)

您是否忘记了remoteFunction来电的论点之间的昏迷?像这样:

onchange="${remoteFunction(controller:"email",
                           action:"printTestTemplate",
                           update:"listTemplates",
                           params:'\'category=\'+this.value' )}"