我正在尝试使用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)...
希望这可以帮助!