在 Ruby/Rails 中的单个模式上有 2 个表单时,提交按钮会混淆

问题描述 投票:0回答:1

我一直在搜索,但没有找到这个 Ruby/Rails 问题的答案。 我有一个rain_admin haml 模式,只要注释掉“渲染部分”行之一,它就可以正常工作。 当两个部分如下所示时,一个部分的提交按钮似乎正在提交另一部分。 Rails 中可以有一个带有 2 个表单的模态吗?

drain_admin.html.haml

= form_for :thing, :url => things_path, :method => :put, :html => {:id => "adoption_form"} do |f|
  = f.hidden_field "id"

  %fieldset.form-group
  = render partial: 'things/free' 
.break 
  = render partial: 'things/rename

/app/views/things/_free.html.haml

= form_for :thing, :url => things_path, :method => :put, :html => {:id => "free_form"} do |f|
  = f.hidden_field "id"
  = f.hidden_field "user_id", :value => ""
  = f.hidden_field "adopted_name", :value => ""
  %fieldset.form-group
    = f.submit t("buttons.free", :thing => t("defaults.thing")), :class => "btn btn-primary btn-block"

应用程序/视图/事物/_rename.html.haml

= form_for :thing, :url => things_path, :method => :put, :html => {:id => "adoption_form"} do |f|
  = f.hidden_field "id"
  = f.hidden_field "user_id", :value => @thing.user_id
  %fieldset.form-group
    = f.label "name", "Rename this drain", :class => "control-label"
    = f.text_field "adopted_name", :value => @thing.display_name.titleize, :class => "form-control"
  %fieldset.form-group
    = f.submit "Rename", :class => "btn btn-primary btn-block"

我希望每个部分都能独立工作。 看来他们互相干扰了。

ruby-on-rails ruby haml
1个回答
0
投票

这与 Rails 无关。您不能在 HTML 中嵌套 form elements

允许的内容是:

流动内容,但不包含

<form>
元素

由于这是无效的 HTML,浏览器中的行为将非常不一致。每个输入都有一个

form
属性,该属性可以是外部形式,也可以是内部形式,具体取决于浏览器是否选择忽略无效的
<form>
标签。

© www.soinside.com 2019 - 2024. All rights reserved.