Как сохранить ту же форму в пользовательском интерфейсе, когда нажата кнопка отправки в form_tag в ruby ​​на рельсах? - PullRequest
0 голосов
/ 24 июня 2019

У меня есть form_tag в моем приложении Rails.Когда я нажимаю кнопку «Отправить», форма перерисовывается.Я хотел бы остановить повторный рендеринг и сохранить исходную форму со всеми полями ввода, даже когда нажата кнопка отправки.

Как этого добиться?Просьба помочь!

<%= form_tag generate_report_path(:header => true) do |f| % >
<div class="container-fluid">
  <div style="padding-right:10px">

    <%= select_tag(:report_id, options_for_select(
      [["Select Report Type", 0],
      ["Report1", 1],
      ["Report2", 2],
      ["Report3", 3]]), id: "report_selection") %>


      <%= hidden_field_tag :format, :pdf %>

У меня есть select_tag в моей форме, как показано выше, который пользователь использует для выбора отчета, который он хотел бы сгенерировать (report1 или 2 или 3)

На основе вышеуказанного выбора другой набор элементов управления вводом будет отображаться прямо под select_tag dropdown, показанным выше.

Когда пользователь выбирает значения, которые ему нравятся, на элементах управления вводом, а затем нажимает кнопку отправки(помечен как «генерировать отчет»), вот что происходит:

  • все элементы управления вводом, которые отображались прямо под select_tag dropdown, исчезают, оставляя только select_tag dropdown с выбором по умолчанию (такчто пользователь может еще раз выбрать отчет, который он хотел бы сгенерировать)

Как отключить вышеуказанный шаг и сохранить все элементы управления вводом (которые отображались под select_tag dropdown) даже послепользователь нажимает кнопку отправки?

Пожалуйста, помогите!

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Замените кнопку HTML на button_tag -> <%= button_tag "Generate Report", class: 'btn btn-sm btn-primary'%>, и это устранит проблему обновления страницы.

0 голосов
/ 24 июня 2019

Form_tag поддерживает удаленную опцию.

См.

https://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-form_tag

try

<%= form_tag(generate_report_path(:header => true), remote: true) do |f| % >

Изменяет запрос в запрос XML,поэтому браузер не будет обновлять страницу после получения ответа.

Для получения более подробной информации вы можете прочитать руководства по направляющим.

https://guides.rubyonrails.org/working_with_javascript_in_rails.html

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