我正在尝试使用 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/