簡體   English   中英

Rails選擇字段默認選項

[英]Rails select field default option

我正在嘗試讓我的選擇字段預先填充兩個與信用卡到期月份/年份相關的選擇字段,顯然我在做錯事:

在這種情況下,字段應選擇03作為默認月份,並選擇2026作為默認年份。

<div class="form-group">
  <%= label_tag "Card Expiration", nil, required: true, class: "control-label col-md-3 col-sm-3 col-xs-4" %>
     <div class="col-md-2 col-sm-2 col-xs-6">
        <%= select_tag :exp_month, options_for_select(Date::MONTHNAMES.compact.each_with_index.map { |name,i| ["#{i+1} - #{name}", i+1] }), include_blank: false, "data-stripe" => "exp-month", class: "form-control", selected: @card.exp_month %>
     </div>
     <div class="col-md-2 col-sm-2 col-xs-6">
        <%= select_tag :exp_year, options_for_select((Date.today.year..(Date.today.year+10)).to_a), selected: @card.exp_year, include_blank: false, "data-stripe" => "exp-year", class: "form-control" %>
     </div>
</div>

這是一個月生成的HTML外觀:

<select class="form-control" data-stripe="exp-month" id="exp_month" name="exp_month" selected="selected"><option value="1">1 - January</option>
  <option value="2">2 - February</option>
  <option value="3">3 - March</option>
  <option value="4">4 - April</option>
  <option value="5">5 - May</option>
  <option value="6">6 - June</option>
  <option value="7">7 - July</option>
  <option value="8">8 - August</option>
  <option value="9">9 - September</option>
  <option value="10">10 - October</option>
  <option value="11">11 - November</option>
  <option value="12">12 - December</option>
</select>

這是生成的HTML年份的樣子:

<select class="form-control" data-stripe="exp-year" id="exp_year" name="exp_year" selected="selected"><option value="2016">2016</option>
  <option value="2017">2017</option>
  <option value="2018">2018</option>
  <option value="2019">2019</option>
  <option value="2020">2020</option>
  <option value="2021">2021</option>
  <option value="2022">2022</option>
  <option value="2023">2023</option>
  <option value="2024">2024</option>
  <option value="2025">2025</option>
  <option value="2026">2026</option>
</select>

我還驗證了@card.exp_month = 1@card.exp_year = 2026

添加“默認選項”作為第二個參數:

<%= select_tag :exp_year, options_for_select((Date.today.year..(Date.today.year+10)).to_a, @card.exp_year), include_blank: false, "data-stripe" => "exp-year", class: "form-control" %>

來自: http : //api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select

options_for_select([ "VISA", "MasterCard" ], "MasterCard")
# => <option value="VISA">VISA</option>
# => <option selected="selected" value="MasterCard">MasterCard</option>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM