我正在使用 Jquery 表单插件通过 ajax 提交表单。我已经在我的模型中的服务器端设置了验证。现在,当验证失败时,我想使用 ajax 向用户显示相同的 flash[:error] 消息。如果验证成功,我可以显示 flash[:notice],因为它在请求完成后可用。我该如何显示 flash[:error]?
从 Rails 应用程序返回 HTML 错误状态。在里面.ajaxForm()
选项,设置“错误”回调来处理错误状态。
您的 Rails 控制器可能如下所示:
def update
@widget = Widget.find(params[:id])
if @widget.update_attributes(params[:widget])
respond_to do |format|
format.js { head :ok }
end
else
respond_to do |format|
format.js { render :json => @widget.errors.full_messages.join(' '), :status => 400 }
end
end
end
这就是你的.ajaxForm()
调用可能看起来像(同样适用于.ajaxSubmit()
):
$('form.ajax').ajaxForm({
success: function(data) {
/* response for success */
},
error: function(data) {
/* Display validation message response from Rails app */
$('form.ajax').prepend('<p class="errors">' + data.responseText + '</p>');
}
});
您可以阅读更多有关error
回调中的jQuery API http://api.jquery.com/jQuery.ajax/.
工资谈话 http://paydrotalks.com/posts/45-standard-json-response-for-rails-and-jquery还有一个关于重构这些类型的响应的很好的教程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)