Обновленная HTML-форма не распознается Rails submit

0

У меня есть простая форма, в которой я динамически изменяю элементы. Когда я отправляю эту форму через 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".

  • 0
    У меня это работает сейчас, но мои скрытые элементы значения не проходят? Примерно такая же настройка, за исключением того, что они имеют hidden_field_tag внутри div заголовка тела. Соответствующие имена на стороне сервера, «hidden_name_0», но значения не идут вместе с ними.
  • 0
    Вы можете показать код для скрытых полей
Показать ещё 3 комментария

2 ответа

0
Лучший ответ

Также измените name=. Точка полей, имеющая как name= и id= является последней, которая может быть уникальной для <form> даже если она повторяется на странице многих форм. id= должен быть уникальным для страницы.

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

Вы должны решить, хотите ли вы также изменить id...

  • 0
    Спасибо! Почти все работает сейчас. Пожалуйста, смотрите комментарий в моем вопросе.
0

Ну это не работает, потому что id - это элемент html/css layout, но элемент управления формой - это фактически name - поэтому вместо изменения id вы вызываете:

$('#nbr').attr('name', 'nbr_0');
  • 0
    Спасибо! Почти все работает сейчас. Пожалуйста, смотрите комментарий в моем вопросе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню