Возвращаемое значение автозаполнения JQuery с использованием массива объектов в качестве источника
В автозаполнении JQuery, который использует массив объектов в качестве источника, могу ли я отобразить метку в INPUT, а затем получить доступ к значению? Поведение по умолчанию заключается в том, что значение отображается на входе после выбора. В этом случае значения представляют собой индексы уникальных ключей в строках таблицы.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>autocomplete demo</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
</head>
<body>
<label for="autocomplete">Select a programming language: </label>
<input id="autocomplete">
<script>
$( "#autocomplete" ).autocomplete({
source: [ { label:"c++", value:1 }, { label: "java", value:2 }, { label: "javascript", value:3 } ]
});
</script>
</body>
</html>
1 ответ
Задайте значение val для ввода по выбранной метке, чтобы вместо метки отображалась метка
$( "#autocomplete" ).val( ui.item.label );
Добавить атрибут данных на вход
<input id="autocomplete" data-value>
и сохранить выбранное значение
$( "#autocomplete" ).attr("data-value",ui.item.value);
Вот JSFiddle