繁体   English   中英

如何在Rails中为date_select设置今天的最长时间?

[英]How to set the max date of being today for date_select in Rails?

我在哪里可以选择出生日期:

= form.date_select :date_of_birth, start_year: Date.current.year, end_year: Date.current.year - 333

我希望它有今天的最大日期。 最长日期必须等于今天和最长月份。 不只是一年。

我已经尝试过“最小:Date.today”和“最大:Date.today”,但没有成功。

我怎样才能做到这一点?

好吧,基于我先前回答的负面观点,让我再解释一下。 Rails日期选择器呈现三个选择,一个选择为日,一个选择为月,一个选择为年。 由于此问题是“固定的”,因此无法选择减少几天或几个月的时间。 这将不再允许您选择有效日期。 您唯一可以更改的是年份范围。 您已经在示例代码中做到了。

现在,回到您的用例。 您想阻止某人将来输入日期吗? 当然。 您有三种选择:

  1. 仅通过模型验证来验证此服务器端,并向用户显示错误消息:“出生日期应该在过去”。 总是这样做!

以下是要添加到1的最佳方法:

  1. 通过JS捕获表单提交,检查提交日期并在日期无效的情况下显示错误
  2. 通过某种Datepicker插件更改显示日期的方式。 jQuery UI有一些不错的界面: https : //jqueryui.com/datepicker/ 由于它是在客户端编程的,因此您可以更好地配置允许的日期

希望这可以帮助。

不要担心将来的日期。 现在暂时忽略此类不良条目。 最好向模型添加验证,以检查提交的date < Date.today是否date < Date.today 如果您确实希望进行前端/客户端验证,请查找JS / jQuery datepicker。 这些更易于配置并支持直接内联错误消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM