вход datalist autocpmlete теряет фокус после выбора значения

У меня есть вход с datalist для выполнения автоматического завершения. Datalist динамичен. Я делаю это следующим образом

У меня есть функция следующим образом:

$(function () {
            $("#to").on("input", function (e) {
                var val = $(this).val();
                if (val === "")
                    return;
                if(val.length < 2) return;
                console.log(val);
                $.getJSON("/code", {term: val}, function (data) {
                    var dataList = $("#list");
                    dataList.empty();
                    //console.log(data);
                    $.each(data, function (idx, obj) {
                            //console.log(obj.value);
                            //console.log(obj.label);
                            var opt = $("<option></option>").attr("value",obj.value).text(obj.label);
                            dataList.append(opt);
                    });
                });
            });
        });

Проблема с этой функцией заключается в том, что, когда я выбираю значение из списка данных, входное событие запускается снова, поэтому мне нужно нажать escape, чтобы выйти из выбора. Как можно потерять фокус при выборе списка данных формы значения.

Спасибо заранее

1 ответ

  1. Я проделал трюк следующим образом, проверив содержимое моего datalist.

    if ($('#list option').filter(function () {
                    return this.value === val;
                }).length) {
                    return;
                }