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 回答