【发布时间】:2018-09-17 18:46:18
【问题描述】:
我正在构建一个管理表单,其中我将 Jquery 的自动完成小部件用于其中一个文本字段。
在名为 customer_phone_number 的字段中,当有人键入电话号码时,自动完成功能会检查数据库是否存在并列出现有选项。选择电话号码后,我希望它填写另一个名为 customer_name 的字段。我已经设法自动完成第一个但不是另一个。这是我的代码现在的样子:
这是视图:
<div class="col-md-4 input">
<div class="form-group">
<label>Customer's Phone Number</label>
<%= f.text_field :customer_phone_number, class: "form-control", data: { autocomplete_source: customers_path } %>
</div>
</div>
<div class="col-md-4 input">
<div class="form-group">
<label>Customer's Name</label>
<%= f.text_field :customer_name, class: "form-control", data: { autocomplete_source: customers_path } %>
</div>
</div>
javascript 文件:
jQuery(function() {
return $('#customer_phone_number').autocomplete({
source: $('#customer_phone_number').data('autocomplete-source'),
select: function(event, ui) {
event.preventDefault(),
$(this).val(ui.item.phone_number),
$('#customer_name').val(ui.item.name);
}
});
});
和控制器:
def index
@customer = Customer.order(:phone_number).where("phone_number like ?", "%#{params[:term]}%").limit(5)
render json: @customer.map{ |customer| { :phone_number => customer.phone_number, :name => customer.name } }
# render json: @customer.pluck(:phone_number, :name)
end
如何将 :name 值传递给 customer_name 字段?
【问题讨论】:
-
它应该适用于您的代码。检查
customer_nametext_field的id属性是否为customer_name。 -
是的,但自动完成列表似乎仍然是空的。你知道还有什么问题吗?非常感谢。
-
@Johnny 与您的代码有点混淆的是
Customer模型中的字段名称customer_phone_number或phone_number?
标签: jquery ruby-on-rails ruby autocomplete