У меня есть простая форма, в которой я динамически изменяю элементы. Когда я отправляю эту форму через 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 для изменения text_field в main_body
$('#nbr').attr('id', 'nbr_0');
Идентификатор изменен правильно и отображается при просмотре 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" => "test".
Также измените name=
. Точка полей, имеющая как name=
и id=
является последней, которая может быть уникальной для <form>
даже если она повторяется на странице многих форм. id=
должен быть уникальным для страницы.
$('#nbr').attr('name', 'nbr_0');
Вы должны решить, хотите ли вы также изменить id
...
Ну это не работает, потому что id
- это элемент html/css layout, но элемент управления формой - это фактически name
- поэтому вместо изменения id
вы вызываете:
$('#nbr').attr('name', 'nbr_0');