在ruby on rails中使用jquery getJSON获取数据

getting data using jquery getJSON in ruby on rails

本文关键字:jquery getJSON 获取 数据 ruby on rails      更新时间:2023-09-26

我正试图通过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]

问题出在哪里?为什么值没有出现在表单中?寻求指导。提前谢谢。

您使用了jQuery('.due'),但这是一个div元素。Fou需要按照以下方式设置表单输入值,

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

它会将amout设置为文本框值。