@Valeriy1997

Почему при авто заполнении из объекта возвращается данные [object obgect]?

Не могу с объекта достать свойство allfilms , и добавить его в авто заполнение.
json переедает объект именно в таком виде а мне нужно из него только все свойства обета allfilms , добавить в авто заполнения. то есть должно выводится : sreck, rozdestvenskaya istoriya, rapuncel itd, но сам обект менять ненужно , только свойство вытащить. Подскажите кто с этим сталкивался как это сделать ?

$(function() {
	
	var projects =  [ {
	"data": {
		"allfilms": {
// нужны все эти свойства ток без ихних свойств , ток названия

			"rosdestvenskaya istoriya": {},
			"sreck": {},
			"lednikoviy period": {},
			"simsoni": {},
			"sauth parck": {},
			"rapuncel": {}
		}
	}
}



			
			$( "#myinput" ).autocomplete({
				minLength: 0,
				source: projects,
				focus: function( event, ui ) {
					$( "#myinput" ).val( ui.item.data.allBrand);
					return false;
				},
				select: function( event, ui ) {
					$( "#myinput" ).val( ui.item.data.allBrand );
					
	
					return false;
				}
			})
			.data( "autocomplete" )._renderItem = function( ul, item ) {
				return $( "<li></li>" )
					.data( "item.autocomplete", item )
					.append( "<a>" + item.data.allBrand + "<br>" + item.data.allBrand + "</a>" )
					.appendTo( ul );
			};


Код в песочнице для иллюстрации проблемы : jsfiddle.net/t52ka/39
  • Вопрос задан
  • 181 просмотр
Решения вопроса 2
@heartdevil
плыву как воздушный шарик
А зачем вы такую неудобную структуру данных используете?

1) У вас в объявлении структуры ошибка. Нет закрывающей квадратной скобки.
2) Даже если структура будет валидная, Она будет содержать всего один объект data. А автокомплит принимает массив данных. То есть нужно сразу подсовывать ему массив.
3) Внутри data у вас опят же всего один элемент allfilms. Вам, грубо говоря, нужно вот так подсунуть сорс для автокомплита -- projects[0].data.allfilms. Не гарантирую, что сработает. Просто предположение.
4) Вы везде в актокомплите вот так обращаетесь к источнику -- item.data.allBrand. У вас же нет allBrand нигде. Или я чего-то не понял. Я вижу только allfilms.
5)У каждого объекта item или ul в анонимных методах автокомплита имеются свойства типа label и value. Вот есл вы все правильно сделаете, то в item.label, либо в ul.label у вас должно быть название фильма.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Структура странноватая, но может она такая где-то в другом месте нужна.
Ключи из нее можно выбрать, см ф-цию getFilms()
jsfiddle.net/t52ka/43

allBrand не прилагается, поэтому я закомментировал кусок, где без него никак.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы