2

getJSON メソッドで請求額を取得しようとしています。金額を取得しているのに、投稿できません。コードは次のとおりです。

形で

<div class="bill">
<%= f.collection_select :customer_bill_id, CustomerBill.all,:id,:id, {:prompt => "Select Customer bill"} %></div><br />

<div class= "due"><%= f.input :bill_due_amount, :label => "Bill Due Amt.", :input_html => { :size => 20} %> </div><br />

js

jQuery(".bill select").bind("change", function() {
        var data = {
        customer_bill_id: jQuery(this).val()  
      }
      jQuery.getJSON(
         "/money_receipts/get_due_amount",
        data,
        function(data){
          var res = "";
      res =  parseFloat(data[0]);
      getAmount = jQuery('.due').val(res);
        });      
    });

そして私が持っているコントローラーで

def get_due_amount
    @due_amount = CustomerBill.find_all_by_id(params[:customer_bill_id]).map{|bill| [bill.bill_due_amount]}if params[:customer_bill_id]
    respond_to do |format|
      format.json { render json: @due_amount }
    end
  end

もしそうならalert(res);、金額の値を取得しますが、そうすると

getAmount = jQuery('.due').val(res);
        alert(getAmount);

私は得る[object Object]

問題に見えるのは?値がフォームに表示されないのはなぜですか? 指導を求めています。前もって感謝します。

4

1 に答える 1

2

jQuery('.due') を使用しましたが、これは div 要素です。フォーム入力値を設定するには、次の方法を実行する必要があります。

jQuery('.due input').val(res); 

金額をテキストボックスの値に設定します。

于 2012-09-05T05:25:38.740 に答える