我沒有測試過這個,但我認爲它應該可以工作。
<%= 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的值,以將其更改爲默認日期。
更新
我只是測試這一點,它的工作!
沒有js,沒有辦法做到這一點。使用js,你最好使用一個月選擇器:) – jvnill 2013-03-15 06:16:19
ohk謝謝.. @jvnill – 2013-03-15 06:17:47
hey @jvnill你能否給我建議任何示例或js的簡短代碼。 – 2013-03-15 06:19:57