我想创建一个月下拉列表,以便不显示当前年度的前几个月。 现在我的代码是:
<%= f.date_select :card_expires_on, :discard_day => true, :start_year => Date.today.year, :end_year => (Date.today.year+10), :add_month_numbers => true %>
它现在显示了我所有的几个月,但我想删除或隐藏过去几个月..有没有办法?
提前致谢! : - )
答案 0 :(得分:0)
在我看来,你应该可以将它添加到帮助器中。我回避了javascript
为remaining_months()或某些此类事物添加自己的方法会更简单易用。
答案 1 :(得分:0)
我没有测试过这个,但我认为它应该可行。
<%= select nil, "name_of_your_model[card_expires_on(1i)]", (Date.today.year..Date.today.year+10).collect { |y| y }, options = {}, id: "card_expires_on_1i" %>
<%= select nil, "name_of_your_model[card_expires_on(2i)]", (Date.today..Date.today.end_of_year).collect { |d| ["#{d.strftime('%m')} - #{d.strftime('%B')}", d.strftime('%m')] }.uniq, options = {}, id: "card_expires_on_2i" %>
<%= text_field_tag "name_of_your_model[card_expires_on(3i)]", nil, type: 'hidden', value: Date.today.day, id: "card_expires_on_3i" %>
基本上,当你在表单中添加date_select时,它会创建三个选择。然后Rails使用“(1i)”,“(2i)”和“(3i)”分别将年,月和日重新组合在一起。确保将“name_of_your_model”更改为用于表单的模型名称,将text_field的值更改为您想要的默认日期。
<强> 更新 强>
我刚试过这个,它确实有效!