Вы можете использовать обратный вызов Response
:
Инициируется после завершения поиска, до отображения меню. Полезно для локального манипулирования данными предложения, когда не требуется настраиваемый обратный вызов source
. Это событие всегда инициируется, когда поиск завершается, даже если меню не будет отображаться из-за отсутствия результатов или если автозаполнение отключено.
Источник: https://api.jqueryui.com/autocomplete/#event -response
$(function() {
/*
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
*/
var availableTags = [
"ActionScript"
];
$("#tags").autocomplete({
source: availableTags,
minLength: 0,
response: function(e, ui) {
if (ui.content.length == 1) {
$(this).val(ui.content[0].value);
$(this).autocomplete("close");
}
}
});
$("#tags").autocomplete("search", "");
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags">
</div>
Это полезно для проверки результатов после вызова вашего пользовательского источника. Я подозреваю, что вам нужно будет немного его обновить.
В качестве альтернативы, вы можете проверить результаты, прежде чем отправлять результаты на response()
, и если они равны только 1, установите value
в это время.