表单提交按钮仅在重新加载后有效 [英] Form Submit button only works after reload

查看:47
本文介绍了表单提交按钮仅在重新加载后有效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个建立表格的索引页,我正在尝试允许用户编辑表格中的行.我正在尝试以最基本的方式进行此操作 - 不使用 javascript、ajax 等,除非 Rails 提供它.

我的表格在 index 方法中显示良好,表格中的最后一行可用于添加新行.新表格工作正常.每行都有一个编辑链接,可路由到控制器的编辑方法.控制器设置要编辑的对象,并渲染索引,这一次在要编辑的行中有一个表单.我的问题是这个表单不会提交,但如果我刷新页面它会提交.

页面刷新后提交的事实非常令人困惑.我没有看到刷新会如何做与单击链接不同的事情(它仍然应该通过相同的路由,使用相同的变量,对吗?)并且我在刷新前后看不到表单 html 的任何差异.有人对可能发生的事情有任何想法吗?

我什至不确定要开始查看什么代码,但是这里是;

index.html.erb

<代码>...<% @boms.each 做 |line|%><% if line == @bom %><%= render("form_in_table", form_objects: @bom , button_text: "Update") %><%其他%><%=render("bom_in_table", line: line)%><%结束%><%结束%><% 如果@bom.new_record?%><%= render("form_in_table", form_objects: [@li, @bom] , button_text: "Add") %><%结束%></tbody>...

_form_in_table.html.erb

<%= form_for(form_objects, html: {class: "form-in-table"}) do |f|%><tr><td><%= f.text_field :quantity %></td><td colspan="2"><%= f.select(:part_id,options_from_collection_for_select(@parts, :id, :pricebook_name),prompt: "Select a Part",) %></td><td></td><td></td><td></td><td><%= f.submit(button_text, class: "btn btn-primary btn-mini") %></td></tr><%结束%>

_bom_in_table.html.erb

<td><%= line.quantity%</td><td><%= line.part_number %></td><td><%= line.part_description %></td><td><%= number_to_currency(line.part_cost) %></td><td><%= line.part_unit %></td><td><%= number_to_currency(line.extension) %></td><td><%= link_to('Edit', edit_bom_path(line)) %></td></tr>

boms_controller.rb

<预><代码>...定义编辑@bom = Bom.find(params[:id])@li = @bom.line_item@boms = @li.boms.sorted_by_part_number@parts = Part.sorted_by_number渲染索引"结尾...

如果这对破译代码/意图有用,我有 line_items、parts 和 boms 的集合;line_item 有很多 boms,line_item 通过 boms 有很多部分.除了部件/行项目关系之外,物料清单还有一个数量.Bom 是物料清单的缩写.@li 是被操纵的 line_item.我遇到的问题是用于查看/添加/编辑属于行项目的物料清单(数量和部件)的集合.

添加日志

在 2013-10-14 14:27:27 -0400 开始 GET "/line_items/8/boms" for 127.0.0.1由 BomsController#index 处理为 HTML参数:{"line_item_id"=>"8"}[1m[35mLineItem Load (0.0ms)[0m SELECT "line_items".* FROM "line_items" WHERE "line_items"."id" = ?限制 1 [["id", "8"]][1m[36mLineItemSubClass Load (1.0ms)[0m [1mSELECT "line_item_sub_classes".* FROM "line_item_sub_classes" WHERE "line_item_sub_classes"."id" = ?ORDER BY "line_item_sub_classes"."id" ASC LIMIT 1[0m [["id", 8]][1m[35mLineItemClass Load (4.0ms)[0m SELECT "line_item_classes".* FROM "line_item_classes" WHERE "line_item_classes"."id" = ?ORDER BY "line_item_classes"."id" ASC LIMIT 1 [["id", 1]]呈现 shared/_error_messages.html.erb (3.0ms)[1m[36mBom Load (1.0ms)[0m [1mSELECT "boms".* FROM "boms" INNER JOIN "parts" ON "parts"."id" = "boms"."part_id" WHERE "boms"."line_item_id"= ?ORDER BY "parts".number ASC[0m [["line_item_id", 8]][1m[35mPart Load (0.0ms)[0m SELECT "parts".* FROM "parts" WHERE "parts"."id" = ?ORDER BY "parts"."id" ASC LIMIT 1 [["id", 1]]渲染 boms/_bom_in_table.html.erb (96.0ms)[1m[36mPart Load (1.0ms)[0m [1mSELECT "parts".* FROM "parts" ORDER BY "parts".number ASC[0m渲染 boms/_form_in_table.html.erb (103.0ms)[1m[35m (24.0ms)[0m SELECT SUM(quantity * cost) AS sum_id FROM "parts" INNER JOIN "boms" ON "boms"."part_id" = "parts"."id" WHERE "boms"."line_item_id" = 8在 layouts/boms 中渲染 boms/index.html.erb (477.0ms)渲染布局/_shim.html.erb (1.0ms)渲染布局/_header.html.erb (0.0ms)渲染布局/_footer.html.erb (0.0ms)渲染布局/application.html.erb(69.0ms)在 671ms 内完成 200 OK(查看:601.0ms | ActiveRecord:31.0ms)在 2013-10-14 14:28:13 -0400 开始为 127.0.0.1 获取/boms/22/edit"由 BomsController#edit 处理为 HTML参数:{"id"=>"22"}[1m[36mBom Load (0.0ms)[0m [1mSELECT "boms".* FROM "boms" WHERE "boms"."id" = ?限制 1[0m [["id", "22"]][1m[35mLineItem Load (1.0ms)[0m SELECT "line_items".* FROM "line_items" WHERE "line_items"."id" = ?ORDER BY "line_items"."id" ASC LIMIT 1 [["id", 8]][1m[36mLineItemSubClass Load (1.0ms)[0m [1mSELECT "line_item_sub_classes".* FROM "line_item_sub_classes" WHERE "line_item_sub_classes"."id" = ?ORDER BY "line_item_sub_classes"."id" ASC LIMIT 1[0m [["id", 8]][1m[35mLineItemClass Load (0.0ms)[0m SELECT "line_item_classes".* FROM "line_item_classes" WHERE "line_item_classes"."id" = ?ORDER BY "line_item_classes"."id" ASC LIMIT 1 [["id", 1]]呈现 shared/_error_messages.html.erb (0.0ms)[1m[36mBom Load (1.0ms)[0m [1mSELECT "boms".* FROM "boms" INNER JOIN "parts" ON "parts"."id" = "boms"."part_id" WHERE "boms"."line_item_id"= ?ORDER BY "parts".number ASC[0m [["line_item_id", 8]][1m[35mPart Load (0.0ms)[0m SELECT "parts".* FROM "parts" ORDER BY "parts".number ASC渲染 boms/_form_in_table.html.erb (25.0ms)[1m[36m (0.0ms)[0m [1mSELECT SUM(quantity * cost) AS sum_id FROM "parts" INNER JOIN "boms" ON "boms"."part_id" = "parts"."id" WHERE "boms".line_item_id"= 8[0m在 layouts/boms 中渲染 boms/index.html.erb (41.0ms)渲染布局/_shim.html.erb (0.0ms)渲染布局/_header.html.erb (1.0ms)渲染布局/_footer.html.erb (0.0ms)渲染布局/application.html.erb(54.0ms)在 113ms 内完成 200 OK(查看:104.0ms | ActiveRecord:3.0ms)在 2013-10-14 14:28:37 -0400 开始为 127.0.0.1 获取/boms/22/edit"由 BomsController#edit 处理为 HTML参数:{"id"=>"22"}[1m[35mBom Load (0.0ms)[0m SELECT "boms".* FROM "boms" WHERE "boms"."id" = ?限制 1 [["id", "22"]][1m[36mLineItem Load (0.0ms)[0m [1mSELECT "line_items".* FROM "line_items" WHERE "line_items"."id" = ?ORDER BY "line_items"."id" ASC LIMIT 1[0m [["id", 8]][1m[35mLineItemSubClass Load (0.0ms)[0m SELECT "line_item_sub_classes".* FROM "line_item_sub_classes" WHERE "line_item_sub_classes"."id" = ?ORDER BY "line_item_sub_classes"."id" ASC LIMIT 1 [["id", 8]][1m[36mLineItemClass Load (1.0ms)[0m [1mSELECT "line_item_classes".* FROM "line_item_classes" WHERE "line_item_classes"."id" = ?ORDER BY "line_item_classes"."id" ASC LIMIT 1[0m [["id", 1]]呈现 shared/_error_messages.html.erb (0.0ms)[1m[35mBom Load (1.0ms)[0m SELECT "boms".* FROM "boms" INNER JOIN "parts" ON "parts"."id" = "boms"."part_id" WHERE "boms"."line_item_id"= ?ORDER BY "parts".number ASC [["line_item_id", 8]][1m[36mPart Load (0.0ms)[0m [1mSELECT "parts".* FROM "parts" ORDER BY "parts".number ASC[0m渲染 boms/_form_in_table.html.erb (5.0ms)[1m[35m (0.0ms)[0m SELECT SUM(quantity * cost) AS sum_id FROM "parts" INNER JOIN "boms" ON "boms"."part_id" = "parts"."id" WHERE "boms"."line_item_id" = 8在 layouts/boms 中渲染 boms/index.html.erb (27.0ms)渲染布局/_shim.html.erb (1.0ms)渲染布局/_header.html.erb (8.0ms)渲染布局/_footer.html.erb (0.0ms)渲染的 layouts/application.html.erb (60.0ms)在 131 毫秒内完成 200 个 OK(查看次数:94.0 毫秒 | ActiveRecord:2.0 毫秒)在 2013-10-14 14:28:38 -0400 开始为 127.0.0.1 获取/assets/application.css?body=1"在 2013-10-14 14:28:38 -0400 开始为 127.0.0.1 获取/assets/custom.css?body=1"在 2013-10-14 14:28:38 -0400 开始 GET "/assets/jquery.js?body=1" for 127.0.0.1在 2013-10-14 14:28:38 -0400 开始 GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1在 2013-10-14 14:28:38 -0400 开始 GET "/assets/bootstrap-transition.js?body=1" for 127.0.0.1在 2013-10-14 14:28:38 -0400 开始 GET "/assets/bootstrap-affix.js?body=1" for 127.0.0.1在 2013-10-14 14:28:38 -0400 开始 GET "/assets/bootstrap-alert.js?body=1" for 127.0.0.1在 2013-10-14 14:28:38 -0400 开始 GET "/assets/bootstrap-collapse.js?body=1" for 127.0.0.1在 2013-10-14 14:28:38 -0400 开始 GET "/assets/bootstrap-modal.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/bootstrap-carousel.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/bootstrap-button.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/bootstrap-dropdown.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/bootstrap-scrollspy.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/bootstrap-tab.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/bootstrap-typeahead.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/bootstrap-tooltip.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/bootstrap-popover.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/bootstrap.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/turbolinks.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/parts.js?body=1" for 127.0.0.1在 2013-10-14 14:28:39 -0400 开始 GET "/assets/application.js?body=1" for 127.0.0.1

解决方案

我相信这是一个 HTML 问题,而不是 Rails 问题.根据这个讨论 表格内的表格

可以不能放在 内.在移动 以包装表格并将控件放入相应的
后,表单就可以工作了.

我仍然不明白为什么刷新页面会使表单工作,但是...

I have an index page that builds a table, and I am trying to allow users to edit line's in the table. I am trying to do this in the most basic way possible - no javascript, ajax, etc, unless Rails is supplying it.

I have my table displaying fine in the index method, and there is a form as the last row in the table that can be used to add a new row. The new form works fine. Each row has an edit link that routes to the controller's edit method. The controller sets the object to be edited, and renders index, this time with a form in the row that is to be edited. My problem is that this form will not submit, but if I refresh the page it will submit.

The fact that the page will submit after a refresh is very confusing. I don't see how a refresh would do anything different then clicking the link (it should still go through the same routing, with the same variables right?) and I can't see any difference in the form html before and after the refresh. Any have ideas on what might be happening?

I am not sure what code to even start looking in, but here goes;

index.html.erb

...
<tbody>
  <% @boms.each do |line| %>
   <% if line == @bom %>
     <%= render("form_in_table", form_objects: @bom , button_text: "Update") %>
    <% else %>
      <%= render("bom_in_table", line: line) %>
    <% end %>
  <% end %>
  <% if @bom.new_record? %>
    <%= render("form_in_table", form_objects: [@li, @bom] , button_text: "Add") %>
  <% end %>
</tbody>
...

_form_in_table.html.erb

<%= form_for(form_objects, html: {class: "form-in-table"}) do |f| %>
  <tr>
    <td><%= f.text_field :quantity %></td>
    <td colspan="2">
      <%= f.select(:part_id,
                   options_from_collection_for_select(@parts, :id, :pricebook_name),
                   prompt: "Select a Part",) %></td>
    <td></td>
    <td></td>
    <td></td>
    <td><%= f.submit(button_text, class: "btn btn-primary btn-mini") %></td>
  </tr>
<% end %>

_bom_in_table.html.erb

<tr>
  <td><%= line.quantity%></td>
  <td><%= line.part_number %></td>
  <td><%= line.part_description %></td>
  <td><%= number_to_currency(line.part_cost) %></td>
  <td><%= line.part_unit %></td>
  <td><%= number_to_currency(line.extension) %></td>
  <td><%= link_to('Edit', edit_bom_path(line)) %></td>
</tr>

boms_controller.rb

...
def edit
  @bom = Bom.find(params[:id])
  @li = @bom.line_item
  @boms = @li.boms.sorted_by_part_number
  @parts = Part.sorted_by_number
  render 'index'
end
...

In case this is useful to deciphering the code/intent, I have collections of line_items, parts, and boms; line_item has many boms, and line_item has many parts through boms. In addition to the part/line item relationship, boms have a quantity. Bom is short for bill of materials. @li is the line_item that is being manipulated. The form I having trouble with is for viewing/adding/editing the collection of boms (quantitys and parts) that belong to a line item.

ADDING LOGS

Started GET "/line_items/8/boms" for 127.0.0.1 at 2013-10-14 14:27:27 -0400
Processing by BomsController#index as HTML
  Parameters: {"line_item_id"=>"8"}
  [1m[35mLineItem Load (0.0ms)[0m  SELECT "line_items".* FROM "line_items" WHERE "line_items"."id" = ? LIMIT 1  [["id", "8"]]
  [1m[36mLineItemSubClass Load (1.0ms)[0m  [1mSELECT "line_item_sub_classes".* FROM "line_item_sub_classes" WHERE "line_item_sub_classes"."id" = ? ORDER BY "line_item_sub_classes"."id" ASC LIMIT 1[0m  [["id", 8]]
  [1m[35mLineItemClass Load (4.0ms)[0m  SELECT "line_item_classes".* FROM "line_item_classes" WHERE "line_item_classes"."id" = ? ORDER BY "line_item_classes"."id" ASC LIMIT 1  [["id", 1]]
  Rendered shared/_error_messages.html.erb (3.0ms)
  [1m[36mBom Load (1.0ms)[0m  [1mSELECT "boms".* FROM "boms" INNER JOIN "parts" ON "parts"."id" = "boms"."part_id" WHERE "boms"."line_item_id" = ? ORDER BY "parts".number ASC[0m  [["line_item_id", 8]]
  [1m[35mPart Load (0.0ms)[0m  SELECT "parts".* FROM "parts" WHERE "parts"."id" = ? ORDER BY "parts"."id" ASC LIMIT 1  [["id", 1]]
  Rendered boms/_bom_in_table.html.erb (96.0ms)
  [1m[36mPart Load (1.0ms)[0m  [1mSELECT "parts".* FROM "parts" ORDER BY "parts".number ASC[0m
  Rendered boms/_form_in_table.html.erb (103.0ms)
  [1m[35m (24.0ms)[0m  SELECT SUM(quantity * cost) AS sum_id FROM "parts" INNER JOIN "boms" ON "boms"."part_id" = "parts"."id" WHERE "boms"."line_item_id" = 8
  Rendered boms/index.html.erb within layouts/boms (477.0ms)
  Rendered layouts/_shim.html.erb (1.0ms)
  Rendered layouts/_header.html.erb (0.0ms)
  Rendered layouts/_footer.html.erb (0.0ms)
  Rendered layouts/application.html.erb (69.0ms)
Completed 200 OK in 671ms (Views: 601.0ms | ActiveRecord: 31.0ms)


Started GET "/boms/22/edit" for 127.0.0.1 at 2013-10-14 14:28:13 -0400
Processing by BomsController#edit as HTML
  Parameters: {"id"=>"22"}
  [1m[36mBom Load (0.0ms)[0m  [1mSELECT "boms".* FROM "boms" WHERE "boms"."id" = ? LIMIT 1[0m  [["id", "22"]]
  [1m[35mLineItem Load (1.0ms)[0m  SELECT "line_items".* FROM "line_items" WHERE "line_items"."id" = ? ORDER BY "line_items"."id" ASC LIMIT 1  [["id", 8]]
  [1m[36mLineItemSubClass Load (1.0ms)[0m  [1mSELECT "line_item_sub_classes".* FROM "line_item_sub_classes" WHERE "line_item_sub_classes"."id" = ? ORDER BY "line_item_sub_classes"."id" ASC LIMIT 1[0m  [["id", 8]]
  [1m[35mLineItemClass Load (0.0ms)[0m  SELECT "line_item_classes".* FROM "line_item_classes" WHERE "line_item_classes"."id" = ? ORDER BY "line_item_classes"."id" ASC LIMIT 1  [["id", 1]]
  Rendered shared/_error_messages.html.erb (0.0ms)
  [1m[36mBom Load (1.0ms)[0m  [1mSELECT "boms".* FROM "boms" INNER JOIN "parts" ON "parts"."id" = "boms"."part_id" WHERE "boms"."line_item_id" = ? ORDER BY "parts".number ASC[0m  [["line_item_id", 8]]
  [1m[35mPart Load (0.0ms)[0m  SELECT "parts".* FROM "parts" ORDER BY "parts".number ASC
  Rendered boms/_form_in_table.html.erb (25.0ms)
  [1m[36m (0.0ms)[0m  [1mSELECT SUM(quantity * cost) AS sum_id FROM "parts" INNER JOIN "boms" ON "boms"."part_id" = "parts"."id" WHERE "boms"."line_item_id" = 8[0m
  Rendered boms/index.html.erb within layouts/boms (41.0ms)
  Rendered layouts/_shim.html.erb (0.0ms)
  Rendered layouts/_header.html.erb (1.0ms)
  Rendered layouts/_footer.html.erb (0.0ms)
  Rendered layouts/application.html.erb (54.0ms)
Completed 200 OK in 113ms (Views: 104.0ms | ActiveRecord: 3.0ms)


Started GET "/boms/22/edit" for 127.0.0.1 at 2013-10-14 14:28:37 -0400
Processing by BomsController#edit as HTML
  Parameters: {"id"=>"22"}
  [1m[35mBom Load (0.0ms)[0m  SELECT "boms".* FROM "boms" WHERE "boms"."id" = ? LIMIT 1  [["id", "22"]]
  [1m[36mLineItem Load (0.0ms)[0m  [1mSELECT "line_items".* FROM "line_items" WHERE "line_items"."id" = ? ORDER BY "line_items"."id" ASC LIMIT 1[0m  [["id", 8]]
  [1m[35mLineItemSubClass Load (0.0ms)[0m  SELECT "line_item_sub_classes".* FROM "line_item_sub_classes" WHERE "line_item_sub_classes"."id" = ? ORDER BY "line_item_sub_classes"."id" ASC LIMIT 1  [["id", 8]]
  [1m[36mLineItemClass Load (1.0ms)[0m  [1mSELECT "line_item_classes".* FROM "line_item_classes" WHERE "line_item_classes"."id" = ? ORDER BY "line_item_classes"."id" ASC LIMIT 1[0m  [["id", 1]]
  Rendered shared/_error_messages.html.erb (0.0ms)
  [1m[35mBom Load (1.0ms)[0m  SELECT "boms".* FROM "boms" INNER JOIN "parts" ON "parts"."id" = "boms"."part_id" WHERE "boms"."line_item_id" = ? ORDER BY "parts".number ASC  [["line_item_id", 8]]
  [1m[36mPart Load (0.0ms)[0m  [1mSELECT "parts".* FROM "parts" ORDER BY "parts".number ASC[0m
  Rendered boms/_form_in_table.html.erb (5.0ms)
  [1m[35m (0.0ms)[0m  SELECT SUM(quantity * cost) AS sum_id FROM "parts" INNER JOIN "boms" ON "boms"."part_id" = "parts"."id" WHERE "boms"."line_item_id" = 8
  Rendered boms/index.html.erb within layouts/boms (27.0ms)
  Rendered layouts/_shim.html.erb (1.0ms)
  Rendered layouts/_header.html.erb (8.0ms)
  Rendered layouts/_footer.html.erb (0.0ms)
  Rendered layouts/application.html.erb (60.0ms)
Completed 200 OK in 131ms (Views: 94.0ms | ActiveRecord: 2.0ms)


Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2013-10-14 14:28:38 -0400


Started GET "/assets/custom.css?body=1" for 127.0.0.1 at 2013-10-14 14:28:38 -0400


Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:38 -0400


Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:38 -0400


Started GET "/assets/bootstrap-transition.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:38 -0400


Started GET "/assets/bootstrap-affix.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:38 -0400


Started GET "/assets/bootstrap-alert.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:38 -0400


Started GET "/assets/bootstrap-collapse.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:38 -0400


Started GET "/assets/bootstrap-modal.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:38 -0400


Started GET "/assets/bootstrap-carousel.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/bootstrap-button.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/bootstrap-dropdown.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/bootstrap-scrollspy.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/bootstrap-tab.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/bootstrap-typeahead.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/bootstrap-tooltip.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/bootstrap-popover.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/bootstrap.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/turbolinks.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/parts.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400


Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2013-10-14 14:28:39 -0400

解决方案

I believe this is an HTML issue, not a Rails issue. Per this discussion Form inside a table, <form> can not be placed inside <table> or <tbody> or <tr>. After moving the <form> to wrap the table and putting the controls inside the respective <td> the form works.

I still don't understand why refreshing the page made the form work, but...

这篇关于表单提交按钮仅在重新加载后有效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆