我有一个 html 文件,其中包含一个用于输入名字的输入框。单击它会运行一个 JavaScript 函数,该函数会加载一个 XML 文件以查看是否有任何匹配项。如果有匹配项,它们将与匹配的联系信息一起显示在表格中。我可以很好地做到这一点。
但如果没有匹配项,我还需要显示警报。那就是“如果联系人不存在”。
现在,我的代码中的 for 循环弄乱了 innerHTML,这很公平,它一遍又一遍地循环特定的代码,所以里面的任何代码都会被解析。这就是为什么innerHTML 在循环之外的原因。
但是如果不存在联系人,我想在调用表之前显示一条消息。
这可能是一件非常简单的事情,但它又一次让我回避了一整天。
这是我的代码:
<script language="JavaScript" type="text/javascript">
function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",dname,false);
xhttp.send();
return xhttp.responseXML;
}
function searchXML()
{
xmlDoc=loadXMLDoc("Contact.xml");
x=xmlDoc.getElementsByTagName("firstname");
input = document.getElementById("input").value;
size = input.length;
divText = "<table border=1><tr><th>First Name</th><th>Last Name</th><th>Phone</th><th>Street</th><th>City</th><th>State</th><th>Postcode</th></tr>";
if (input == null || input == "")
{
document.getElementById("results").innerHTML= "Please enter a character or name!";
return false;
}
for (i=0;i<x.length;i++)
{
startString = firstname.substring(0,size);
if (startString.toLowerCase() == input.toLowerCase())
{
firstname=xmlDoc.getElementsByTagName("firstname")[i].childNodes[0].nodeValue;
lastname=xmlDoc.getElementsByTagName("lastname")[i].childNodes[0].nodeValue;
phone=xmlDoc.getElementsByTagName("phone")[i].childNodes[0].nodeValue;
street=xmlDoc.getElementsByTagName("street")[i].childNodes[0].nodeValue;
city=xmlDoc.getElementsByTagName("city")[i].childNodes[0].nodeValue;
state=xmlDoc.getElementsByTagName("state")[i].childNodes[0].nodeValue;
postcode=xmlDoc.getElementsByTagName("postcode")[i].childNodes[0].nodeValue;
divText = divText + "<tr><td>" + firstname + "</td><td>" + lastname + "</td><td>" + phone + "</td><td>" + street + "</td><td>" + city + "</td><td>" + state + "</td><td>" + postcode + "</td></tr>";
}
}
//insert does not exist code here
document.getElementById("results").innerHTML= "<h2>The contact does not exist.</h2>";
return false;
//end insert
divText = "<h1>The contact details are:</h1><br />" + divText + "</table>";
document.getElementById("results").innerHTML= divText;
}
</script>
我的html正文:
<body>
First Name: <input type="text" name="firstname" id="input">
<br />
<input type="submit" value="Submit" onClick="searchXML()">
<br />
<br />
<div id="results">
</div>
</body>
我很感激任何帮助。
谢谢