簡體   English   中英

帶有select_tag的選定選項

[英]Selected option with a select_tag

我有一個select_tag,像這樣:

<%= form_tag orders_path do %>               
           <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
            data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
            data-label="Pay by CB"
            data-email="<%= current_user.email %>"
            data-name="Order"
            data-locale=auto>
          </script>
   <!-- url question -->
      <div class="widthfull">
        <p class="question">What's the URL ?</p>
        <div class="widthfull"><%= text_area_tag(:url, "", class: "answer textarea widthfull calcul_checkout", rows:"1") %></div>
      </div>
   <!-- language_ov question -->
     <div> 
      <p class="question">
      What's the language of the video ?
      </p> 
     <div class="flex"> 
      <span class="answer language_ov">></span> 
      <span>
       <%= select_tag(:language_ov, 
         options_for_select([['Français', 'FR'],['Anglais', 'EN']]), 
         class:"answer language_ov calcul_checkout chosen-select")%>
      </span> 
     </div> 
   </div> 
<% end %>

但是,如果我的用戶默認不重新選擇該選項,則params[:language_ov]等於nil

如果我的用戶未選擇任何內容,我想為params[:language_ov]提供默認值'FR'。

這里是模型驗證Request.rb

class Request < ApplicationRecord
  belongs_to :user
  belongs_to :order
end

我在控制器中使用參數的地方

.. @request = Request.new(language_ov: params[:language_ov], language_request: language, export_option: params[:export_option]||'no') ..

這是服務器日志(language_ov沒有參數):

Started POST "/orders" for ::1 at 2017-08-07 22:20:22 +0200 Processing by OrdersController#create as HTML'   
Parameters: {"utf8"=>"✓", "authenticity_token"=>"*************",
"url"=>"www.url.com",
 "video_title"=>"Project name",
 "lengthminutes"=>["6"], "lengthsecondes"=>[""],
 "language_request"=>["EN"],
 "project_comment"=>"",
 "stripeToken"=>"************",
 "stripeTokenType"=>"card",
 "stripeEmail"=>"testemail@gmail.com"}

顯然select_tag不支持selected選項。 我應該使用選擇方法嗎? 您能幫我將我的select_tag轉換成select嗎?

我發現了問題。 如果用戶之前已經開始填寫表單,那么我可以使用JavaScript來預先填寫表單。 我用localStorage變量存儲數據。 因此,當用戶到達頁面時,我會檢查localStorage是否存在。 這就是問題所在,因為它每次都會重寫所選的值。 我添加了一個條件來執行這一行(它正在工作)。 我將找到另一種解決方案,用於保存表單並在用戶回來時預先填寫表單。 $("#language_request").val(localStorage.language_request);

暫無
暫無

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

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