圣杯&x2B;jQuery:FormRemoteOnSuccess
我正在努力解决圣杯&x2B;jQuery:FormRemoteOnSuccess,jquery,forms,grails,Jquery,Forms,Grails,我正在努力解决onSuccess方法,以及如何正确调用自定义JavaScript函数 我有以下formRemote元素: <g:formRemote name="userSearchRemoteForm" url="[controller: 'userSearch', action: 'ajaxFindUser']" onLoading="jQuery('#userSearchSubContainerH
onSuccess
方法,以及如何正确调用自定义JavaScript
函数
我有以下formRemote
元素:
<g:formRemote name="userSearchRemoteForm"
url="[controller: 'userSearch', action: 'ajaxFindUser']"
onLoading="jQuery('#userSearchSubContainerHeadLoaderImage').show()"
onSuccess="createUserTable(data)"
onComplete="jQuery('#userSearchSubContainerHeadLoaderImage').hide()">
....</g:formRemote>
我的JavaScript
函数createUserTable
如下所示:
function createGuestTable(data) {
console.log(data);
}
onSuccess="createUserTable()"
我在WebDev工具中看到的只是以下响应:
POST http://localhost:8080/GrailsTest001/userSearch/ajaxFindUser 404 (Not Found)
我的函数从未被调用过。我还尝试调用onSuccess
中的JavaScript函数,如下所示:
function createGuestTable(data) {
console.log(data);
}
onSuccess="createUserTable()"
但我还是得到了同样的结果
我做错了什么
编辑:清除问题-这是我的控制器
功能:
def ajaxFindUser(UserSearchCommand userSearchCommand) {
println("... in ajaxFindUser()")
def result = [:]
if (userSearchCommand.hasErrors()) {
result['fail'] = "Error in search values!"
} else {
println("... creating values for search...")
def user = (User) session.getValue(theUser)
def inputMap = createInputMap(userSearchCommand)
def foundUsers = userSearchService.findUser(user.connectionID, user.language, inputMap)
if (foundUsers == null) {
println("... search returned NULL!")
result = [:]
result['fail'] = userSearchService.getError()
} else {
println("... search returned VALUES!!")
result['success'] = foundUsers
}
}
def jResult = result as JSON
println(".... returning JSON: ${jResult.toString(true)}")
return jResult
}
天哪!
我当时正面临这个问题,但根本没有意识到这是个问题
我刚刚将我的ajaxFindUser
函数的最后一行从
return jResult
到
使用以下onSuccess
参数
onSuccess="createUserTable(data)"
一切都很顺利
很抱歉…表示找不到页面,如果将此链接直接放在浏览器地址栏中会有什么结果?但如果无法访问控制器函数,为什么会调用它?我必须返回对象以外的JSON
对象吗?我是否必须告诉控制器不要渲染任何特定内容?事实上,如果我尝试在浏览器中键入url,我也会得到404,但对我来说这很清楚,因为控制器函数所做的一切就是获取一个命令
对象,并在成功或失败时返回一个JSON
对象,所以它无法访问-或者不可以?