gpt4 book ai didi

javascript - AJAX 预测搜索

转载 作者:行者123 更新时间:2023-11-28 00:24:57 25 4
gpt4 key购买 nike

我有一个基本的 HTML 表单,我想在其中填写美国各州的名称。我以以下格式存储了全部 50 个(阿拉巴马州到怀俄明州):

<?xml version="1.0"?>
<states xml:lang="EN">
<item>
<label>Alabama</label>
<value>AL</value>
</item>
<item>
<label>Alaska</label>
<value>AK</value>
</item>
...

我为此编写了一些 AJAX:

function ajaxFunction(str) {
if (str.length==0) {
document.getElementById("search").innerHTML="";
document.getElementById("search").style.border="0px";
return;
}
var ajaxRequest = new XMLHttpRequest();
ajaxRequest.onreadystatechange = function() {
if (ajaxRequest.readyState==4 && ajaxRequest.status==200) {
document.getElementById("search").innerHTML=ajaxRequest.responseText;
document.getElementById("search").style.border="1px solid #A5ACB2";
}
}
ajaxRequest.open("GET","USA_States.xml",true);
ajaxRequest.send();
}

HTML:

<form id = "form1">
<input onkeyup="ajaxFunction(this.value);" type = "text" size = "30" id = "text1" autocomplete="off"/>
<div id = "search">

但它仍然不起作用。建议?我做错了什么?

最佳答案

您可能正在寻找这个。用这个替换您的 javascript 代码。

function ajaxFunction(str) {
if (str.length==0) {
document.getElementById("search").innerHTML="";
document.getElementById("search").style.border="0px";
return;
}
var input=document.getElementById('text1').value;
var ajaxRequest = new XMLHttpRequest();
ajaxRequest.onreadystatechange = function() {
if (ajaxRequest.readyState==4 && ajaxRequest.status==200) {
var res=ajaxRequest.responseXML;
var states=res.getElementsByTagName("states");
var elem=states[0];
var items=res.getElementsByTagName("item");
document.getElementById("search").innerHTML="";
for(var i=0;i<items.length;i++){

var item=items[i].getElementsByTagName("label");
var state=item[0].innerHTML;
var len=str.length;
var match=state.substr(0,len);
if(match.toUpperCase()==input.toUpperCase()){
var val=items[i].getElementsByTagName("value");
var value=val[0].innerHTML;
var e = document.createElement('span');
e.innerHTML = state+"("+value+")&nbsp;&nbsp;";
document.getElementById("search").appendChild(e.firstChild);
}
}

document.getElementById("search").style.border="1px solid #A5ACB2";
}
}
ajaxRequest.open("GET","USA_States.xml",true);
ajaxRequest.send();
}

关于javascript - AJAX 预测搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29633650/

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