Возвращаемое значение автозаполнения 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

Другие вопросы по тегам