我输入了一个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退出选择。选择值表单数据列表时,如何失去焦点。
提前致谢
答案 0 :(得分:0)
我通过检查我的datalist的内容来完成以下操作。
if ($('#list option').filter(function () {
return this.value === val;
}).length) {
return;
}