在我的代码中,我将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});
}
}
答案 0 :(得分:0)
简单:在两个字符后调用trimming()
。
您看到的效果是autocomplete()
只是设置自动完成,它不会“启动”它。自动完成由autocomplete()
安装的按键处理程序启动。所以你需要将处理程序安装一个字符“太早”。