2016-02-11 26 views
1

我有如下表enter image description here抓住用戶選擇什麼option_for_select

Rate Type的option_for_select這兩個選項是不是「平」或「百分比」。我的盒子默認爲「平」。

The問題:我找不到用戶最終選擇了什麼。如果他們選擇我不知道的百分比。我怎樣才能找出他們選擇的價值?我想知道,因爲如果他們選擇「Flat」,我希望Institutional框的貨幣格式爲true。

= form_for @payer_contract,:html => {:id => "add-payer-contract-form"} do |f| 
    %table.table-base.table-striped{:id => "case-global-table"} 
    %tbody 
     .clone-wrapper 
     - @payer_contract.phase_dates.each.with_index do |pd, index| 
      =fields_for "phase_dates",pd do |p| 
      %tr.clone-target{:id => 'phase-table-row', :name => 'payer_contract[phase][:i][desc]'} 
       - @phase_name = t('payer_contracts.phase')+ ' ' +(index+1).to_s 
       %td 
       %input.field-input{type: 'text', readonly: 'readonly', placeholder: 'Phase', value: @phase_name} 
       %td 
       = p.select :rate_type, options_for_select(@rate_type, @selected_rate_type), :name=> "phase_dates[rate_type]-c#{index}", required: true, :style => 'width:125px' 
       %td 
       = p.text_field :institutional, :name=> "phase_dates[institutional]-c#{index}", class: 'field-input', 'currency-format' => (@rate_type == 'Flat') 
       %td 
       = p.text_field :professional, :name=> "phase_dates[professional]-c#{index}", class: 'field-input' 
       %td 
       %button.icon-fallback-text.clone-add{"aria-label" => "Add", :type => "button"} 
        %span.icon-add-square{"aria-hidden" => "true"} 
       %button.icon-fallback-text.clone-remove{"aria-label" => "Remove", :disabled => @payer_contract.phase_dates.size > 1 ? false : true, :type => "button"} 
        %span.icon-remove-square{"aria-hidden" => "true"} 

在上面的代碼,Institutional總是顯示貨幣格式,即使我選擇「百分比」,因爲@rate_type出於某種原因從來沒有發現什麼用戶實際選擇。

當我檢查下房價類型的 「平」 框2,我覺得這一點:

<select id="phase_dates_rate_type-c1" name="phase_dates[rate_type]-c1" u-index="1" aria-invalid="false" class="valid"><option value=" 

任何想法?

控制器看起來是這樣的:

高清新

@payer_contract = PayerContract.new(
    id: '', 
    description: '', 
    type_code: { 
     id: '', 
     code_key: '', 
     display: '', 
     code_group: '' 
}, 
    base_contract_rate: '', 
    phase_dates: [{ 
         id: '', 
         rate_type: '', 
         institutional: '', 
         professional: '' 
        }], 
    donor_claim_phase: '', 
) 
@selected_rate_type = 'Flat' 

回答

0

在你p.text_field :institutional,是不是pd[:rate_type]要比較的值?它看起來像@rate_type是兩個選項的數組。

對於已經保存的記錄,你可以嘗試:

= p.text_field :institutional, :name=> "phase_dates[institutional]-c#{index}", class: 'field-input', 'currency-format' => (pd[:rate_type] == 'Flat') 

對於表單元素你動態地使用JavaScript你必須切換在JavaScript的速度類別增加。

+0

它仍然評估爲真,對於平坦和百分比與此。問題是,控制器中的@Selected_rate_type ='Flat'。我應該改變它在控制器中的其他東西嗎? – Jay266

+0

您應該完全刪除@selected_rate_type並在循環中使用p.rate_type。每個記錄需要不同的值,因此您需要使用該記錄中保存的值。 – andynu

+0

我刪除了@selected_rate_type,但我不確定如何去保存每條記錄上的值。我怎樣才能做到這一點? – Jay266