2016-09-18 4 views
0

私の悪い英語のために申し訳ありません。フィールドを作成する方法は、オプションが選択され、RailsとJavaScriptを使用している場合にのみ表示されますか?

Ruby on Raillandを使用してWebアプリケーションを作成しています。オプションが選択されている場合にのみ表示するフィールドが必要です。/

アプリ/ビュー/ gastos/_form.html.erb

 <div class="field" id="ddlSelect"> 
    <%= f.label "Tipo de Pagamento" %><br> 
    <%= f.select(:payment_type, options_for_select([['À vista', 1], ['À prazo', 2], ['Misto', 3]]), { include_blank: true }) %> 

    <input type="text" id="hdnPro" value="product" style='display:none'/> 
    </div> 

アプリ/資産/ JavaScriptの

var ddlSelect; 

ddlSelect = function() { 
    $('#ddlSelect').('change',function(){ 
    if($(this).val() == 'À prazo' || 'Misto'){ 
     $('#hdnPro').show(); 
     }else{ 
     $('#hdnPro').hide(); 
     } 
    }); 

} 

$(document).ready(function() { 
    ddlSelect(); 
}) 

つをgast​​os.js:ここ

は、問題の私のフォームですその他の質問:埋め込みルビにこの行を書き直す方法

<input type="text" id="hdnPro" value="product" style='display:none'/> 

そして_formをgast​​os.jsに接続する方法。

ありがとうございました

答えて

0

これは私のコードを修正した方法です。

<div> 
       <div class="field"> 
       <%= f.label "Forma de Pagamento" %><br> 
       <%= f.select :forma_pagamento, forma_de_pagamento, { include_blank: true }, { :id => "forma_pagamento"} %> 
       </div> 
       <script > 
       $('#forma_pagamento').on('change',function(){ 
        if($(this).val() == 1){ 
         $('#avista').show(); 
         $('#aprazo').hide(); 
         $('#parcelas').hide(); 

        }if($(this).val() == 2){ 
         $('#avista').hide(); 
         $('#aprazo').show(); 
         $('#parcelas').show(); 

        }if($(this).val() == 3){ 
         $('#avista').show(); 
         $('#aprazo').show(); 
         $('#parcelas').show(); 
        } 
       }); 
       </script> 
関連する問題