Проблема при нажатии кнопки-флажка - PullRequest
0 голосов
/ 21 мая 2019

Всякий раз, когда я нажимаю на ярлык (в флажке), он переходит в верхнюю часть страницы.

Я фактически удалил все сценарии и стиль и все еще выдает тот же результат.Это, вероятно, связано с циклом, но все еще исследует.

<% @requests.each do |request| %>
    <%= form_with(model: request, remote: true, :id => "form#{id}", :class => "form-class") do |form| %>
        <%= form.collection_check_boxes :category_ids, Category.all, :id, :name do |b| %>    
          <%= b.check_box %>
          <%= b.label   %>
        <% end %>
    <% end %>
<% end %>

Сгенерированный HTML

<input type="checkbox" value="24" name="request[category_ids][]" id="request_category_ids_24">
<label for="request_category_ids_24">This is a general option</label>

Каждый ярлык и вход имеют уникальные идентификаторы

Следует установить флажоки ничего не делать, но вместо этого переходит в начало страницы.

1 Ответ

0 голосов
/ 21 мая 2019

Проблема в том, что когда вы создаете цикл форм в рельсах, он в конечном итоге создает неуникальные идентификаторы между входами и метками и различными частями цикла. Это связано с соединением между «for» метки и «id» ввода.

Чтобы это исправить, создайте собственные идентификаторы, чтобы убедиться, что метка активирует правильный флажок.

Проблема:

<%= b.check_box %>
<%= b.label   %>

Решение:

<%= b.check_box id: "#{request.id}-#{b.value}" %>
<%= b.label for: "#{request.id}-#{b.value}" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...