0

在我的代码中,我将一个keyup事件绑定到我的输入以检查输入值的长度是否为 3。如果是,我对服务器进行 Ajax 调用,从我的数据库中获取以输入的这 3 个字符开头的记录,然后启动 jQuery使用源自动完成 - 来自数据库的数据。

问题是当用户输入三个字符时,我得到了自动完成的来源,只有当他输入第四个字符时,自动完成才开始。是否有可能改变这种行为,只要你输入 3 个字符并让源代码开始自动完成?

这是我的代码:

var keypresshandler = function () {
        var  strin = document.getElementById('txtInput').value;
        newstr = strin.replace(/[^\u0400-\u04FF0-9]/gi, '');
        if (newstr.length<3)
        {
                $( "#txtInput" ).autocomplete( "destroy" );
        }  else     
            if (newstr.length==3)
            {   
                 triming();    
            }
    }


    $(function() {    
         $('#txtInput').bind('keyup', keypresshandler);
     });

    function triming() {
         //make asynchronous ajax call to server to get the source of my autocomplete                    
         // alert (mec.length);       
         $( "#txtInput" ).autocomplete({source: mec});
     }

   }
4

1 回答 1

0

trimming()简单:在两个字符后调用。

您看到的效果是autocomplete()只是设置了自动完成功能,而不是“启动”它。自动完成由autocomplete()安装的按键处理程序启动。因此,您需要“过早”安装处理程序一个字符。

于 2013-02-05T08:33:00.833 回答