我有这个JavaScript代码来搜索我的数据库并显示结果。我想在获取结果时显示消息“ please wait .. ”。我在第3行写的(从上次开始)。
我的意思是,我想在搜索结果div中显示“ please wait ... ”消息,同时获得结果。但它没有显示任何信息。
function ajaxFunction(e) {
function r() {
if (t.readyState == 4) {
document.getElementById("search-results").innerHTML = t.responseText;
document.getElementById("msg").style.display = "none"
}
}
var t;
try {
t = new XMLHttpRequest
} catch (n) {
try {
t = new ActiveXObject("Msxml2.XMLHTTP")
} catch (n) {
try {
t = new ActiveXObject("Microsoft.XMLHTTP")
} catch (n) {
alert("Your browser does not support AJAX!");
return false
}
}
}
var i = "search.php";
i = i + "?name=" + e;
i = i + "&sid=" + Math.random();
t.onreadystatechange = r;
t.open("GET", i, true);
t.send(null);
document.getElementById("msg").innerHTML = "Please Wait ...";
document.getElementById("msg").style.display = "inline"
}
解决问题
更新
我想只在输入达到10个字符时才能完成这项工作。
HTML CODE
<input type="text" name="name" maxlength="10" id="name" onkeyup="ajaxFunction(this.value);" />
答案 0 :(得分:1)
你可以尝试的是在调用ajax函数之前显示一个显示并在ajax请求完成时隐藏它
//show the message
document.getElementById("msg").style.display = "inline"
//call the ajax function
ajaxFunction(e);
答案 1 :(得分:0)
认为你需要在r()中添加一些东西:
if (t.readyState == 4) {
document.getElementById("search-results").innerHTML = t.responseText;
document.getElementById("msg").style.display = "none"
}
if (t.readyState == 1 ||t.readyState == 2 ||t.readyState == 3) {
document.getElementById("msg").style.display = "block";
}
....以便在连接/接收/前进时显示。您之前可能没有隐藏它,但是以下请求的任何混乱都不会显示