簡體   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