我尝试了 setinterval 和 settimeout 来回调 validate() 函数,但我不知道为什么它不起作用。现在我尝试另一种调用方法,但仍然不起作用。有修复吗?
下面是代码:
function validate(){
var code = document.getElementById("BScode").value ;
var msg = "<p>ERROR : Please select the option. </p>";
var error = document.getElementById("valError");
error.innerHTML = ""; //clear error-span
document.getElementById("divResult").innerHTML = ""; //clear resutl-div
** document.getElementById("map_title").innerHTML = "";
document.getElementById("map_canvas").style.display = "none"; **
if( code == "" || code == "none" || code == null ){
error.innerHTML = msg;
}else{
//get result
getETA();
auto_refresh_countdown(seconds);
}
}
/* The whole stupid function to call back refresh validate() which failed :)*/
function auto_refresh_countdown(seconds) {
var time = seconds;
var myTimer = setInterval(function() {
time--;
if(time === 0){
clearInterval(myTimer);
validate();
auto_refresh_countdown(seconds);
}
}, 1000);
}
function getETA() {
var seconds = 5;
var id = document.getElementById("BScode").value;
var url = "http://www.cybertowers.net/jsonp/?a=eta.aspx?bid=";
loadData(url, getETACallback);//real
}
最佳答案
最后一行,您有一个未定义的函数getETACallback
。
我刚刚尝试运行 auto_refresh_countdown
,它有效。不过,仅当 seconds
与 1
不同时才会调用 validate
。
另外,你有一个拼写错误:uto_refresh_countdown
--> auto_refresh_countdown
关于javascript - 无法自动刷新内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50532538/