gpt4 book ai didi

javascript - 如何在 ajax 调用服务器后立即启动 jquery 自动完成

转载 作者:行者123 更新时间:2023-11-28 10:58:42 25 4
gpt4 key购买 nike

我有一个包含超过 30,000 个答案的大型数据库!我将 keyp 事件绑定(bind)到我的文本框来搜索输入值长度是否为 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()
{


xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);

var xmlObj = xmlhttp.responseXML;
var textXML = xmlObj.documentElement.firstChild.firstChild.nodeValue;


if (window.DOMParser)
{
parser=new DOMParser();
var xmlDoc=parser.parseFromString(textXML,"text/xml");
}
else // Internet Explorer
{
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(textXML);
}

var rows = xmlDoc.getElementsByTagName("row");
rowsn = rows.length;
for (i=0;i<rowsn;i++)
{
var cols=rows[i].getElementsByTagName("colunm");
colsn=cols.length;


for (var j=0; j<colsn; j++)
{

mec[i] = cols[j].getAttribute("colvalue");

}

}
// alert (rec.length);

$( "#txtInput" ).autocomplete({source: mec});


}

}


var url = "http://localhost:9091/localbusscat/services/localbusscat/FindEl?myel="+ encodeURIComponent(newstr);
// alert (url);
xmlhttp.open("GET", url, true);
xmlhttp.send();

}

最佳答案

我的 friend 也遇到了同样的问题,最终我们发现 input 标记上的事件处理程序必须设置为 onkeyup

关于javascript - 如何在 ajax 调用服务器后立即启动 jquery 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14700691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com