Grails:使用ajax更新多个页面元素

时间:2009-09-24 09:26:20

标签: grails

似乎用g:formRemote和g:submitToRemote,我只能指定一个更新目标div。更新多个div的可行策略是什么?

4 个答案:

答案 0 :(得分:1)

如果你想坚持使用g:formRemote标签来执行你的ajax,那可能是不可能的。为什么不写一些jQuery,并推出自定义ajax更新?它不容易!

答案 1 :(得分:1)

您可以使用onSuccess而不是使用更新,并解析响应并更新您需要更新的元素,如下所示:

<g:formRemote name='loginForm' url="[action:'login']"
    onSuccess='loginOK(e)' >
  <!-- form fields -->
</g:formRemote>
<g:javascript>
  function loginOK( resp ) {
    // parse the resp.responseText and update
  }

</g:javascript>

或者你可以像以前的答案建议一样使用jQuery并自己滚动。

如果您想在失败时根据成功而不是另一个元素更新一个元素,您可以使用这样的地图:

<g:formRemote name='loginForm' url="[action:'login']" update="[success:'message',failure:'error']">

答案 2 :(得分:1)

有这个grails问题的解决方案,你可以使用taconite,其中taconite允许用一个单独的ajax调用更新多个元素

http://malsup.com/jquery/taconite/

并且在某人的博客上发布了另一个解决方案,但我的声誉只允许我在stackoverflow上发布一个链接!!!

所以我给出了博客文章“使用Grails和Ajax更新多个页面元素”的标题

答案 3 :(得分:0)

从grails doc for g:formremote,http://grails.org/doc/2.2.0/ref/Tags/formRemote.html,您可以使用onSuccess回调为成功提交定义js函数,这样您就可以更新该函数中的所有目标元素,否则创建ajax称自己也是一个不错的选择。