【问题标题】:How can I generate input[type=date] with simple_form?如何使用 simple_form 生成 input[type=date]?
【发布时间】:2015-03-16 11:11:28
【问题描述】:

当我执行f.input :start_date, as: :date 时,我会得到 3 个选择元素(日、月和年)。

我可以通过f.input :start_date, as: :string 获取input[type=text] 元素,但是如何使用simple_form 生成input[type=date] 元素?

【问题讨论】:

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


    【解决方案1】:

    您应该指定html5 选项:

    f.input :start_date, as: :date, html5: true
    

    Here 是详细信息。

    【讨论】:

      【解决方案2】:

      默认情况下,简单表单不会生成 HTML 5 日期/时间输入,因此使用日期、时间或日期时间都将使用普通的 Rails 助手生成选择框。我们相信浏览器还没有完全准备好这些,但您可以通过传递 html5 选项轻松地在每个输入的基础上选择加入

      <%= f.input :expires_at, as: :date, html5: true %>

      希望simple_form documentation 中的这条信息能解决您的问题。

      【讨论】:

      • 不知道为什么有人反对这个答案,因为它是正确的。
      【解决方案3】:

      您还可以将其设置为默认值,定义一个使其成为默认值的类:

      # Use html5 date inputs by default, use html5: false to force
      # the use of multiple selects
      class DateTimeInput < SimpleForm::Inputs::DateTimeInput
        private
      
        def use_html5_inputs?
          input_options.fetch(:html5, true)
        end
      end
      

      【讨论】:

        猜你喜欢
        • 2018-10-12
        • 1970-01-01
        • 2022-10-15
        • 2016-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-04
        • 2016-01-23
        相关资源
        最近更新 更多