2012-03-08 28 views
1

I持って、次の表をベース。サービスタイプは、提供されるサービスの種類を定義します。いくつかのservice_typeがクレジットで提供されます - isCreditフィールドは1または0のブール値を保持します。つまり、ユーザーがサービスを追加すると、サービスタイプが入力されたコンボボックスが表示されます。私が必要とするのは、ユーザーがisCreditの値が1のサービスタイプを選択すると、同じフォームに支払い条件テーブルの支払い条件のオプションを持つコンボボックスが表示されるはずです。動的に変更フォームはRuby on Railsでコンボボックスで選択した値に

これはどのようにしてルビーのレールで行うことができますか?選択したservice_typeにisCredit値がある場合はpayment_termコンボボックスが表示されます。それ以外の場合はservices.payment_terms = 0

+0

あなたはJavascriptで行う必要があります。これはレールの問題ではありません。 – shingara

答えて

1

まず支払い条件を非表示にして選択ボックスをレンダリングします(たとえば、特定のcssクラスを使用します) 。 idがpayment_termsであると仮定しましょう。サービスや表示/非表示payment_termsで選択人口にchangeイベントを処理するためのJSでの簡単なスクリプトを書く1

<select id=services> 
<% services.each do |service| %> 
    <option value=<%=service.id %> data-iscredit=<%=service.type.isCredit ? '1' : '0' %>><%=service.desc %></option> 
<% end %> 
</select> 

|

その後のサービスにサービスisCredit 0場合を追跡するために、追加のデータ属性を持つ選択ボックスを描画デコンピングをisCreditに選択します。私はあなたがjQueryを使用していると仮定しています。

$("#services").change(function() { 
    var selopt = $(this.children[this.selectedIndex]), 
     isCredit = parseInt(selopt.attr('data-iscredit')); 
    if (isCredit === 0) { 
     $("#payment_terms").hide(); 
    } else { 
     $("#payment_terms").show(); 
    } 
}) 
関連する問題