【问题标题】:How to reference form field values after a page reload to preserve input values?如何在页面重新加载后引用表单字段值以保留输入值?
【发布时间】:2021-04-26 16:14:57
【问题描述】:

我有以下带有日期选择器的 simple_form_for 按到期日过滤发票。

当用户输入 start_date 和 end_date 并提交以过滤发票时,页面会重新加载并且表单字段会重置(“选择日期”占位符显示)。

如何引用这些字段的值,以便在页面重新加载时它们的值是先前选择的值? (他们现在在params)。

我尝试添加 value: f.object.start_date 选项,但似乎不起作用。

我也试过value: params[:date_params][:start_date]也没有成功。

  <div class="col-md-6 my-2" >
    <%= simple_form_for :date_params, { url: admin_invoices_batch_edit_index_path, method: :get } do |f| %>
      <%= f.input :start_date, as: :string, placeholder: "Pick a start date",
                  input_html: { data:{ controller: "flatpickr",
                  attributes:{ enableTime: false, enableSeconds: false } } } %>

      <%= f.input :end_date, as: :string, placeholder: "Pick an end date",
                  input_html: { data:{ controller: "flatpickr",
                  attributes:{ enableTime: false, enableSeconds: false } } } %>
      <%= f.button :submit, "Filter" %>
    <% end %>
  </div>

【问题讨论】:

    标签: html ruby-on-rails simple-form


    【解决方案1】:

    在您的控制器操作中,获取参数值。

    @start_date = params.has_key?(:date_params) ? params[:date_params][:start_date] : nil
    @end_date = params.has_key?(:date_params) ? params[:date_params][:end_date] : nil
    

    在您看来,将值添加到每个参数的 input_html

    input_html: { value: @start_date ...
    

    这将在可用时设置参数,或者在不可用时将它们保留为 nil。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      相关资源
      最近更新 更多