Jquery自动完成疑问

时间:2011-02-25 20:13:59

标签: autocomplete jquery

                $("#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] + " &lt;" +  userData[i].split(":")[1] + "&gt;</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浏览器上试过

1 个答案:

答案 0 :(得分:1)

你真的需要再看一下自动完成的官方文档,你遇到问题的原因是你添加的很多附加参数。 (包括你正在调用的formatMatch方法,请问你为什么要将它格式化为表格?!)

您真正需要指定的是设置自动完成的元素和用户数据,从绝对原始启动开始,然后开始添加回参数。这将带您找出错误的根本原因。

如果您希望我为您调试一下,请发布您的完整代码,我会跳过它看看是什么导致了您的错误。

资源:http://docs.jquery.com/Plugins/autocomplete

编辑:(添加此组件工作方式的基础)

$("#caller__MODULE_ID__").autocomplete(userData);