【问题标题】:Rails 4 date_field, min and max year?Rails 4 date_field,最小和最大年份?
【发布时间】:2014-09-27 08:52:36
【问题描述】:

我正在尝试使用 rails 4 方法 ''date_field'' 为我的表单设置最大年份值,因为用户似乎可以输入大于 4 位数字的年份。

我一直在尝试这样使用它,但它似乎没有任何效果。

<%= f.date_field :date, style: "height: 30px", min: Time.now.year , max:         Time.now.year + 84 %>

【问题讨论】:

  • 我相信它需要:min:max attributes(搜索date_field)。然而,这只是一个疯狂的猜测,因为我对 Rails 一无所知。
  • 也试过了,改为关闭“max:”、“:max”,两种方式都没有效果,它仍然接受像“9999999”这样的年份
  • 如果您在字符串中再添加一个"9',它会接受吗,或者如果您将:min 设置为今天的日期,它是否适用于该字符串(有七个"9" )?
  • 更准确地说,它接受 6 位数字。 (YYYYYY) 是的,它确实有效,没有效果。但我认为可以设置限制,因为不能设置大于 12 的月份或 3 位数的月份。

标签: ruby-on-rails ruby validation date


【解决方案1】:

我就是这样做的:

<%= f.date_field :date, min: Date.new(1994, 07, 03), max: Date.today %>

我通过 Ruby 的 Date 类中的方法限制了用户可以使用内置选择器放置的最小和最大日期。唯一的问题是这不是动态的。关于验证年份的问题,我相信浏览器会在用户提交表单之前检测到日期类型的输入字段(例如&lt;input id="user_date" min="1994-07-03" name="user[birthdate]" type="date"&gt;)自动执行此操作。希望这有帮助。

编辑:将Date.now 更新为Date.new

【讨论】:

    猜你喜欢
    • 2017-10-13
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 2018-12-07
    相关资源
    最近更新 更多