Отключить поле число_, когда переключатель не установлен - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь создать форму и показывать поле число_, только если установлен соответствующий переключатель. Я могу спрятать поле number_field с помощью CSS, но, поскольку все поля number_fields имеют одно и то же имя, приложение сохраняет в базе данных только последнее поле (даже если соответствующая радиосвязь снята, поскольку CSS скрывает только поле). Существует способ отправить данные числа_поля в базу данных только в том случае, если отмечена их относительная радиокнопка?

Чтобы проиллюстрировать проблему другими словами: если этот код генерирует 5 радиокнопок, когда они отправляются в базу данных, значение последнего поля number__ является окончательным значением, записанным в базе данных, в то время как я sh говорю, что в базу данных отправляется только значение поля number_field с выбранной относительной кнопкой radio_button.

Существует способ делать это в контроллере или модели?

Мой взгляд:

<% @shipping_method_list.each do |shipping| %>
  <div>
    <%= f.radio_button :shipping_method_id, shipping.id %>
    <% @sm_id = :shipping_method_id.to_s + "_" + shipping.id.to_s %>
    <%= f.label @sm_id, shipping.name %>
    <span class="reveal-if-active">Cost: <%= f.number_field :shipping_cost %></span> # This is what I want to disable when the radio isn't checked.
  </div>
<% end %>

И мой CSS:

.reveal-if-active {
    opacity: 0;
    max-height: 0;
    overflow: hidden;
}

input[type="radio"]:checked ~ .reveal-if-active,
input[type="checkbox"]:checked ~ .reveal-if-active {
  opacity: 1;
  max-height: 100px;
  overflow: visible;
}

1 Ответ

0 голосов
/ 18 января 2020

Ну, хотя я пытался использовать только RoR для этого, у меня не было времени, чтобы научиться делать, поэтому я просто использовал javascript, чтобы отключить элементы, которые не используются (отключить поле number_field, когда radio_button не отмечен ). Таким образом, база данных будет записываться только с включенным полем number_.

Спасибо всем за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...