更新的 HTML 表单无法被 Rails 提交识别

Updated HTML form not recognized by Rails submit

本文关键字:Rails 提交 识别 HTML 表单 更新      更新时间:2023-09-26

我有一个简单的形式,我正在动态更改元素。 当我通过submit_tag提交此表单时,它不会将更改的元素传递到服务器。 我需要添加什么? 对Rails来说有点新,所以任何帮助将不胜感激。

形式:

<form action="/cabinets" id="cabinets_form" method="post">
  <div id="main_body">
    <%= render 'layouts/body_header' %>
  </div>
</form>

正文标题:

<div style="width: 1250px; position: relative; left: -150px; height: 50px;">
  <%= text_field_tag 'nbr', nil, :style => 'width: 30px; font-family: monospace; position: relative; left: 60px;', maxlength: 3 %>
</div>

jQuery 以更改main_body中的text_field

$('#nbr').attr('id', 'nbr_0');

id已正确更改,并且在查看html时可以看到,但是当我提交表单时,发送的信息是:":nbr => ''"而不是":nbr_0 => ''"。使用导轨 3.2.13。

编辑:

这是带有隐藏元素的正文标题:

<div style="width: 1250px; position: relative; left: -150px; height: 50px;">
  <%= text_field_tag 'nbr', nil, :style => 'width: 30px; font-family: monospace; position: relative; left: 60px;', maxlength: 3 %>
  <%= hidden_field_tag "hidden_info", nil %>
</div>

使用此代码更改名称后尝试更新值。

$('#hidden_info').attr('name', 'hidden_info_0');
$('#hidden_info').html("test");

参数的输出是:"hidden_info_0"=>"。 我希望它是"hidden_info_0"=>"测试"。

同时更改name= 。同时具有name=id=的字段的要点是,后者对于<form>可能是唯一的,即使它在许多表单的页面上重复也是如此。id=对于页面必须是唯一的。

$('#nbr').attr('name', 'nbr_0');

您必须决定是否还要更改id...

好吧,它不起作用,因为id是一个 html/css 布局元素,但表单控件实际上是name的——所以你不会更改id而是调用:

$('#nbr').attr('name', 'nbr_0');