Автозаполнение получить значение беспокойства из массива JSON
jQuery(function() {
var ingrident_array_json = [{"id_product":"45","name":"Acetyl Hexapeptide-8\ufeff (Argireline)","unit_price":"19.4500000000","usage_percent_lo":"3.00","usage_percent_hi":"10.00","usage_percent_best":"10.00"},{"id_product":"46","name":"Ceramide Complex (CeraTouch\u2122)","unit_price":"23.6125000000","usage_percent_lo":"3.00","usage_percent_hi":"10.00","usage_percent_best":"5.00"}];
$("input:text[id^='ingredient']").live("focus.autocomplete", null, function () {
$(this).autocomplete({
autoFocus: true,
source: projects,
focus: function( event, ui ) {
$( "#autocomplete" ).val( ui.item.name );
return false;
},
select: function( event, ui ) {
$(this).val( ui.item.name );
$(this).attr("data-value",ui.item.unit_price);
$(this).closest('.extra_fileds').find('.product_id_public').val(ui.item.unit_price);
return false;
}
})
});
});
у меня есть ingrident_array_json массив json, в котором по шесть элементов в каждой записи. Я хочу, чтобы имя заполнялось при автозаполнении, а другая запись - в скрытом поле. Является ли это возможным? Сейчас ничего не показываю. Пожалуйста, любая помощь будет оценена
1 ответ
Во-первых, живой метод устарел. Вместо этого используйте "on()" в своих проектах.
Во-вторых, используйте как показано ниже:
var arr = $.map(ingrident_array_json, function(el) { return el });
$(function () {
$('#ingredient').autocomplete({
minLength: 3,
source: arr,
select: function (event, ui) {
$('#ingredient').val( ui.item.name );
$('#ingredient').attr("data-value",ui.item.unit_price);
$('#ingredient').closest('.extra_fileds').find('.product_id_public').val(ui.item.unit_price);
return false;
}
})
.autocomplete().data("uiAutocomplete")._renderItem = function (ul, item) {
return $("<li>")
.append("<a>" + item.name + "</a>")
.appendTo(ul);
};
});
Надеюсь это поможет.