我正在尝试在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" />
答案 0 :(得分:1)
哦,似乎是因为与Prototype(默认情况下与Grails捆绑)和jQuery冲突。远程调用由Prototype lib进行,但如果你安装jQuery plugin for grails - 它将开始使用jquery进行远程调用。