= button_to不会以其它形式产生形式,如果已经
-
11-09-2019 - |
题
使用相同的形式在两个分创建和编辑在我的情况下新的和预览。 部分看起来有点像这样(I使用HAML)
=form_tag ({:action => params[:action]}, :multipart => true)
=text_field :newsletter, :title
=text_area :newsletter, :body
=file_field :newsletter,:attachment
-if params[:action] == "preview"
=button_to "select contacts and send", :action => "contacts"
=submit_tag "save and preview"
但在html输出是
...
<input type="submit" value="select contacts and send"/>
<input type="hidden" value="rwYnZlEpWV4dR89zjgprEALBYmP0xqM3lnKt9JDLyak=" name="authenticity_token"/>
<input type="submit" value="save and preview" name="commit"/>
...
为何button_to不生成按钮以形成?
一个解决办法是保持该按钮外部的部分和仅为1形式, 但如何可以有2个按钮以相同的形式?
编辑: 另一个解决方法是,其由JavaScript如果按下button_to设置并提交表单隐藏复选框,则控制器将它们分离
解决方案
HTML实际上不允许用于向嵌套形式。有些浏览器,但你会看到在其他一些疯狂的行为。是要示出的原始输出或从萤火所计算的DOM的HTML?
来处理这种情况下的优选方式是将你的button_to
其他形式之外。如果你很酷与JS-唯一的选择,你可以使用link_to :method => :post
和样式的链接看起来像一个按钮。
其他提示
在结束使用的
:name => 'otheraction'
在控制器然后检查是否任一
params[:commit] or params[:otheraction]
在params哈希表
我建立一个称为button_link_to
宝石。
使用button_link_to方法将生成按钮标签但是没有嵌套在由形式标签
只需使用它像的link_to。
https://github.com/tonilin/button_link_to <:您可以从这里得到更多的信息/ p>
如果你想看到一个演示: http://button-link-to.herokuapp.com/
不隶属于 StackOverflow