我正在使用jquery autocomplete(1.8)填充标签,就像在http://net.tutsplus.com/tutorials/javascript-ajax/how-to-use-the-jquery-ui-autocomplete-widget/中解释的一样。
我需要的是从下拉菜单中选择LI项目后,该项目应从列表中删除。
在自动完成的选择部分,我尝试使用像
这样的diff方法获取当前的LI$(this).get(0).tagname //which return undefined
e.target.id //which return id of textfield to which autocomplete is bound
答案 0 :(得分:3)
假设您完全按照链接到的教程执行:
var ignored=[];
)。您可以将它放在全局范围内,以确保它可以在任何地方访问(放在$(function() { ...
之前)。关于source
回调的定义(格式化结果),请替换此
//process response
$.each(data, function(i, val){
suggestions.push(val.name);
});
用这个:
//process response
$.each(data, function(i, val){
if(ignored.indexOf(val.name) == -1) {
suggestions.push(val.name);
}
});
然后,在select
回调中,将所选项的值添加到ignored
数组中:
ignored.push(ui.item.value)
如果用户点击了删除链接,您可能希望“取消忽略”该项目。在删除处理程序定义中,在第一行添加:
var text = $(this).parent().find('a').remove().end().text();
var position = ignored.indexOf(text);
if(position != -1) {
ignored.splice(position, 1);
}
// rest of the original code below...