javascript - 使用 Grails SubmitToRemote onFailure 选项不起作用

标签 javascript ajax grails gsp

我正在尝试使用 Grails 标记 SubmitToRemote 来处理失败消息(例如验证域对象上的错误)。

我的标签 submitToRemote 是:

<g:submitToRemote
      url="[action: 'save']"
      update="[success: 'wizard', failure: 'error']"
      onFailure="onFailure(data, code)"
      name="submit"
      class="btn btn-large btn-inverse"
      value="Save"/>

我的 onFailure 函数是:

   <g:javascript>
        function onFailure(data, code){
            document.getElementById('errors').style.display = 'inline';
            $('#errors').html(data);
        }

    </g:javascript>

最后,grails Action :

(...)
if(!plan.validate()){
    render status: 400, text: "This plan cannot be saved. Fill all fields and try again."
    return
}

我怎样才能正确地做到这一点?

最佳答案

我不知道这对现在是否有帮助,但肯定可以帮助其他人。

我成功地调用了 onFailure 方法并将消息传递给了方法。

所以我就是这样做的,我在 Controller 中设置错误代码和文本,如下所示:

render(status: 403, text: 'Request failed to complete due to some error.')

然后在 gsp 上,我使用 XMLHttpRequest 提取消息:

<g:formRemote onFailure="onFailure(XMLHttpRequest.responseText)" ...>

根据我的发现,我看到 grails 在 ajax 下为 onFailure 函数包装和创建。

error:function(XMLHttpRequest,textStatus,errorThrown){onFailure(XMLHttpRequest.responseText)...

Grails version: 2.5.0

希望这对您有所帮助!

关于javascript - 使用 Grails SubmitToRemote onFailure 选项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21699296/

相关文章:

javascript - 动画 div...无法让它停止插入所有 div (Magento)

通过 AJAX 的 JQuery 发布表单不会触发 Rails respond_to format.js

rest - 为基础SubClassRestfulController扩展RestfulController不适用于grails 3.0.4

events - 将groovy gorm代码放入配置文件错误?

javascript - 从 <span> 内的 <span> 获取文本

javascript - Google Sheet 脚本编辑器 - 如何正确设置数字格式?

javascript - 为什么 async/await 函数运行两次?

javascript - 如何在 vanilla javascript 中编写具有特定 id 的 Ajax 调用删除方法

jQuery 移动 : Breaks When Reloading/Deep Linking/Bookmarking Pages Added to DOM via AJAX

oracle - Oracle:SQL未正确结束