我正在尝试重新安排我的某些表格,我有一个奇怪的问题
和其中一个。
我总是使用jquery而不是原型,所以jquery插件是
安装和配置,我的布局在其头部有一个<g:javascript
library="jquery" plugin="jquery"/>
标签,和Config.groovy
包含grails.views.javascript.library="jquery"
行。
到目前为止一切都很好。
现在我在我的页面中有一个g:formRemote这样声明:
<g:formRemote id="signUpForm" name="signUpForm"
url="[controller:'user', action:'register']"
onLoading="showRegistrationProgress()"
onComplete="hideRegistrationProgress()"
onSuccess="processRegistrationResponse(data)">
...
</g:formRemote>
但是当我点击提交按钮时,它完全绕过了jquery 事件处理程序并执行标准的非ajax提交。
当我查看Chrome中的javascript调试器时,我注意到了 我提交表单时出现以下错误消息:“未定义Ajax”。 事实上,当我查看生成的HTML时,我看到了表单 看起来像这样:
<form onsubmit="new Ajax.Request('/kodesk/user/register',...)"
method="POST"
action="/kodesk/user/register"
id="signUpForm" name="signUpForm">
....
</form>
这个“新的Ajax.Request”来自哪里?它不是原型代码吗?
答案 0 :(得分:0)
尝试将<g:javascript library="jquery" />
向下移动到视图中而不是布局中。我注意到这在过去为我解决了这个问题。在再次尝试clean
之前,请尝试运行run-app
。
答案 1 :(得分:0)
在我阅读这篇文章之后,我找到了一种方法:http://grails.1312388.n4.nabble.com/newb-ajax-jquery-question-td1386031.html
我刚刚将<g:setProvider library="jquery"/>
添加到我的页面头部,现在它可以正常工作了。我仍然不知道为什么它之前没有用,但这个解决方案对我来说已经足够了。