0

我有一个使用 remote_form_for 标签提交的表单。

看法

<% form_remote_tag(:url => { :action => 'create' })  do %>

a bunch of fields

<% end %>

控制器

def create 

  if @greeting.can_save?
   respond_to do |format|
   format.html {redirect_to board_link(@board)}
   format.js #close the iframe and reload the parent
   end
  else
   respond_to do |format|
   format.html {redirect_to :action => 'new'}
   format.js #show the errors on the form
   end
  end
end

创建.rjs

page << "parent.$.fancybox.close();"

对于使用正确信息提交的表单,一切正常。但我需要显示无效提交的错误消息。

表单未通过验证时,如何在表单上显示错误消息?

提前致谢。

4

1 回答 1

0

将表单拉出到它自己的部分中,在您的页面中呈现该部分,为表单提供唯一的 ID。

在表单标签中,您应该以任何您希望的方式呈现错误,无论是列出它们还是将类添加到受影响的字段。

现在在您的 RJS 中执行以下操作:

if @greeting.valid?
  page << "parent.$.fancybox.close();"

else
  page.replace 'my_form_id', :partial => 'greetings/form'
end

如果出现错误,它将重新呈现表单。确保将您的 @greeting 实例变量传递给此表单,以便正确填写字段。

于 2011-03-30T12:18:16.457 回答