2

我正在尝试在 grails 中使用标签 g:formRemote。

在头部定义中:

 <g:javascript library="prototype" />

看法:

<g:formRemote name="something" update="remoteDocsBlock"
                      url="[ controller: 'document',
                       action: 'search']">

      search: <input name="searchstring" type="text"></input>

      <g:actionSubmit value="Search" action="search" />

      <g:render template="/document/remoteSearchList" model="[docs:docs]" />

</g:formRemote>

<div id="remoteDocsBlock">this div is updated with the result...</div>

在我的控制器中

def search = {
.....
render (template:'remoteSearchList', model: [docs:docs])

}

问题

发生了什么:调用控制器,整个页面被控制器的结果替换 - 模板_remoteSearchList。页面上的不同 ajax 调用确实有效。我不知道为什么 grails 会这样。

更新

我已经删除了“__”问题。评论解决了这个问题。

更新

我已经隔离了问题:JQuery。我也在网站上使用 JQuery。如果将其删除,则 ajax 调用将起作用……需要找到一种方法来使两者都起作用。

<g:javascript library="jquery-1.4.4.min" />
<g:javascript library="jquery-ui-1.8.7.custom.min" />
<g:javascript library="jquery-server-extentions" />
4

1 回答 1

1

哦,似乎是因为与 Prototype(默认与 Grails 捆绑)和 jQuery 冲突。远程调用由 Prototype lib 进行,但如果您为 grails 安装 jQuery 插件,它将开始使用 jquery 进行远程调用。

于 2011-12-19T08:28:31.467 回答