Я хочу использовать функцию jqueryui autocomplete combobox, чтобы пользователь мог выбрать вариант из списка.
Я последовал этому примеру, и вот мой код в jsfiddle.
И я получаю эту ошибку, когда я нажимаю опцию из списка:
Uncaught TypeError: Cannot read property 'option' of undefined.
Ошибка указала на строку, как показано ниже:
select: function(event, ui) {
ui.item.option.selected = true; <-- This Line
self._trigger("selected", event, {
item: ui.item.option
})
},
В чем проблема с этим option
?
Изменить 2:
Кажется, что ui.item
не присваивается никакому значению, потому что, когда я хочу отобразить ui.item
для консоли, он возвращает undefined
вместо object
.
Но как я могу это исправить?
Похоже, проблема заключается в версии jqueryui. В версии 1.10.x данные больше не сохраняются в item.autocomplete
, но ui-autocomplete-item
.
Должен быть:
input.data("ui-autocomplete")._renderItem = function(ul, item) {
return $("<li></li>").data("ui-autocomplete-item", item).append("<a>" + item.label + "</a>").appendTo(ul);
};
И не
input.data("ui-autocomplete")._renderItem = function(ul, item) {
return $("<li></li>").data("item.autocomplete", item).append("<a>" + item.label + "</a>").appendTo(ul);
};
Вы можете обратиться сюда.
Попробуйте значение вместо опции, если ваш код указан в автозаполнении
i.item.value
это даст вам выбранное значение типа строки из вашего комбо
Например, я хочу получить значение выбранного письма из моего комбо (#emailstext)
$('#emailstext').autocomplete({
source: dat,
minLenght: 1,
autocomplete: true,
select: function (e, i) {
dowhateverwithemail(i.item.value); //this will pass selected value from combo to function
}
});
option
наvalue
, это также выдает мне ошибку:Cannot read property 'value' of undefined
.