这应该适用于autocomplete
' 更改事件。add
此代码假定当您想向列表中添加新项目时,会出现一个带有 id 的按钮。如果用户从列表中选择一个项目,它将不会出现。可以进行一些调整,但是这个概念证明应该可以实现:
var source = ["Apples", "Oranges", "Bananas"];
$(function () {
$("#auto").autocomplete({
source: function (request, response) {
response($.ui.autocomplete.filter(source, request.term));
},
change: function (event, ui) {
$("#add").toggle(!ui.item);
}
});
$("#add").on("click", function () {
source.push($("#auto").val());
$(this).hide();
});
});
这是一个例子:http: //jsfiddle.net/rmGqB/
更新:听起来我有点误解了这个要求。您还可以利用自动完成填充候选列表的结果,并根据搜索结果是否产生任何完全匹配来提高按钮的可见性:
var source = ["Apples", "Oranges", "Bananas"];
$(function () {
$("#auto").autocomplete({
source: function (request, response) {
var result = $.ui.autocomplete.filter(source, request.term);
$("#add").toggle($.inArray(request.term, result) < 0);
response(result);
}
});
$("#add").on("click", function () {
source.push($("#auto").val());
$(this).hide();
});
});
示例:http: //jsfiddle.net/VLLuJ/