jquery - Grails + jQuery : formRemote onSuccess

标签 jquery forms grails

我正在努力解决 <g:formRemote/> 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>

在 Debug模式下,我看到 Controller 函数 ajaxFindUser 被调用并返回一个有效的 JSON 对象,如下所示(来自 consoleprettyPrint == true ):

{"success": {
"376440": {
  "phone": "",
  "email": "janeDoe@test.com",
  "lastname": "Doe",
  "firstname": "Jane"
},
"4146": {
  "phone": "555-123456789",
  "email": "johnDoe@test.com",
  "lastname": "Doe",
  "firstname": "John"
}
}}

我的 JavaScript 函数 createUserTable 如下所示:

function createGuestTable(data) {
console.log(data);
}

我在 WebDev 工具中看到的只是以下响应:

POST http://localhost:8080/GrailsTest001/userSearch/ajaxFindUser 404 (Not Found)

并且我的函数从未被调用。我还尝试像这样调用JavaScript function中的onSuccess:

onSuccess="createUserTable()"

但我仍然得到相同的结果......

我在这里做错了什么?

<小时/>

编辑:清除所有内容 - 这是我的 Controller 函数:

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

render jResult

带有以下onSuccess参数

onSuccess="createUserTable(data)"

一切顺利!!

抱歉...

关于jquery - Grails + jQuery : formRemote onSuccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13266557/

相关文章:

forms - 如何使 ionic 范围成为表单内的必填字段

unit-testing - 如何在Grails单元测试中获取抽象域类的实例?

grails jasypt-加密 : cannot resolve import GormEncryptedStringType

javascript - 单击其他按钮时隐藏一个表单(两个按钮,两个表单)(PHP/HTML/Javascript)

java - 使用基于 sign-post api 的 grails-oauth 插件刷新 Yahoo Oauth 访问 token

javascript - 当手机屏幕锁定时,我的 JavaScript 代码停止运行?

javascript - 通过自动完成功能输入相互依赖的文本

javascript - 单击时如何切换跨度的内容?

jquery - 如何使用多选择框值触发数据表的搜索过滤器?

php - 如何设置它以便不必上传表单中的文件即可将表单的其余数据插入 mysql 数据库?