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

时间:2013-11-04 01:56:38

标签: javascript jquery html ruby-on-rails forms

我有一个简单的表单,我动态地改变了元素。当我通过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');

在查看html时可以正确更改ID,但是当我提交表单时,发送的信息是:“:nbr =&gt;''”而不是“:nbr_0 =&gt;''”。使用rails 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”=&gt;“”。我希望它是“hidden_​​info_0”=&gt;“test”。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

好吧它没有用,因为id是一个html / css布局元素,但表单控件实际上是name - 所以不要改变id而是调用:< / p>

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