自动填充表单取决于Rails 4中的一个字段

时间:2015-03-18 11:06:04

标签: javascript jquery ruby-on-rails ajax

我想根据第一个字段中的值使用数据库中的数据自动填充某些字段。 这就是我所拥有的:

$(function(){
   $('#request_name').on('focusout', function () {
     var clientName = $(this).val();
     $.ajax({
    url: "/requests/autofill/"+clientName,
    type: "GET",
    dataType: ...some dataType
    })      
   });
});

当用户在id" request_name"的第一个字段中键入一些文本时并重点关注我想在db中搜索该值并使用返回值填充其他字段。

这是我的控制器:

def autofill
    @client = Client.where("name=?",params[:name]).take
    respond_to do |format|
     ... some code 
    end
   end

并为此做准备:

get "requests/autofill/:name" => "requests#autofill", as: :requests_autofill

我也在我的请求视图中创建了autofill.js.erb文件。我想我应该处理该文件中的填写表单字段。

但是,在这里我不知道如何向服务器发送正确的ajax请求以及如何处理它。 如果我没有指定dataType服务器返回整个页面autofill.html.erb。我想我应该使用其他一些dataType,但我不知道哪一个。

我还想将返回的值插入表单字段。 例如,要自动填充的字段之一就是

<%= f.text_field :mobile, class: 'form-control' %>

2 个答案:

答案 0 :(得分:0)

假设客户端已移动且您的输入字段ID为mobile_input,请在

中添加以下脚本

<强> autofill.js.erb

$('#mobile_input").val('<%=@client.mobile%>');

答案 1 :(得分:0)

 $("#request_name").on('focusout', function(){              
    $.ajax({
             type: "GET",
             url: "/requests/autofill/"+clientName,
             data: formData,
             success: function(data){

//使用API​​返回的数据填充from字段,如下所示

                      $('#field_id').html(data.<json_key>)     
                    }
    });
    return false;
 });