Я создаю форму администратора, где использую виджет автозаполнения 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 ?