$("#caller__MODULE_ID__").focus().autocomplete(userData, {
minChars: 0,
max:4,
width: "20%",
matchContains: true,
cacheLength: 0,
selectFirst: false,
autoFill: false,
formatMatch: function(row, i, max) {
return "<table class='tbl-ac' border='0' cellpadding='0' cellspacing='0'><tr><td>"+ userData[i].split(":")[0] + " <" + userData[i].split(":")[1] + "></td></tr></table>";
},
formatResult: function(row) {
var rowString = row+"";
return rowString.split(":")[0];
}
});
问题:当我清除文本框时,始终显示自动完成列表的前四个条目。如何消除它们
我还注意到当我点击标签时它会清除。我尝试了一个按键事件,但也没有帮助。请参阅下面的代码了解按键
$("#caller__MODULE_ID__").bind("keypress",function(event){
if($("#id").text()=="")
{
myEvent = jQuery.Event("keypress");
myEvent.keyCode= 9;
$("#caller__MODULE_ID__").trigger(myEvent);
}
});
PS:在firefox浏览器上试过
答案 0 :(得分:1)
你真的需要再看一下自动完成的官方文档,你遇到问题的原因是你添加的很多附加参数。 (包括你正在调用的formatMatch方法,请问你为什么要将它格式化为表格?!)
您真正需要指定的是设置自动完成的元素和用户数据,从绝对原始启动开始,然后开始添加回参数。这将带您找出错误的根本原因。
如果您希望我为您调试一下,请发布您的完整代码,我会跳过它看看是什么导致了您的错误。
资源:http://docs.jquery.com/Plugins/autocomplete
编辑:(添加此组件工作方式的基础)
$("#caller__MODULE_ID__").autocomplete(userData);