Ответ интересный. Я не понимаю, почему, и не проводил тонны экспериментов на этом, приглашаю кого-нибудь еще добавить.
Вопросу не хватало некоторого контекста. Входные данные были в строках таблицы, поэтому код на самом деле выглядел так:
<table>
<thead>...content...</thead>
<%= form_tag form_path, id: "form" do %>
<tbody>
<!-- either pre-rendered or dynamically generated trs with input fields -->
</tbody>
<tbody>
<tr>
<td colspan="3">
<button id="submit">Submit</button>
</td>
</tr>
</tbody>
<% end %>
</table>
form_tag
, обернутый вокруг tbody
, который содержал поля trs
с input
. В этой версии кода только предварительно обработанные входные данные были получены при отправке или .serializeArray()
, как упоминалось выше.
Однако, если я переместу form_tag
за пределы table
тег, тогда это работает; то есть, динамически добавленные trs
с input
полями успешно подобраны при отправке или .serializeArray()
.
Опять же я не знаю почему, не смог найти документацию, предполагающую, что это ожидаемое поведение, так что не стесняйтесь, дайте мне знать. Спасибо!
Рабочий код:
<%= form_tag form_path, id: "form" do %>
<table>
<thead>...content...</thead>
<tbody>
<!-- either pre-rendered or dynamically generated trs with input fields -->
</tbody>
<tbody>
<tr>
<td colspan="3">
<button id="submit">Submit</button>
</td>
</tr>
</tbody>
</table>
<% end %>