Jquery AJAX:服务器端验证失败时如何显示Flash错误消息?

2024-03-28

我正在使用 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(使用前将#替换为@)

Jquery AJAX:服务器端验证失败时如何显示Flash错误消息? 的相关文章

随机推荐