使用带有动态生成的输入的form_tag提交数组

时间:2013-10-28 01:08:09

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

我正在尝试通过Rails 4中的form_tag提交一系列电子邮件。

new.html.erb:

...
<%= render partial: 'add_user' %>
<%= render partial: 'new_ride_form' %>
...

_add_user.html.erb:

...
            <input type='text' id='add_passenger_textfield'/>
            <button type='button' id='add_passenger_button'>Add</button>
...

_new_ride_form.html.erb:

<%= form_tag("/rides", method: "post", id: 'create_ride_submission_form') do %>
<div class="row" id="first_passenger">
...
</div>

<div class="row">
    <button id= 'create_ride_button'>Create Ride</button>
</div>

<% end %>

rides.js:

$(document).on('click', '#add_passenger_button', 
        function() {
          var v = $('#add_passenger_textfield').val();
          if(v.length > 0) {
            $('#first_passenger').after( 
              $('<div class="row"/>').append(
                $('<div>').append(
                  $('<input name="emails[]" type="text" value=' + v + ' disabled/>'))
                ));
          }
        }).on('click', '#create_ride_button', function() {
                ...
              $('#create_ride_submission_form').submit();
            }
        });

我希望控制器可以看到params[:emails]

之前,当我只是静态地包含类似

之类的东西时
<text_field_tag 'emails[]'>
它似乎工作正常,但现在POST甚至不再发送一个名为“电子邮件”的字段。这是因为我没有使用表单助手进行输入吗?

1 个答案:

答案 0 :(得分:2)

已禁用的表单元素未发送到服务器。您在javascript部分中的输入元素已被禁用,除非您在其他位置启用它,否则它将无法到达您的控制器。