在XMLHttpRequest完成后运行Javascript

在XMLHttpRequest完成后运行Javascript,javascript,ajax,callback,xmlhttprequest,Javascript,Ajax,Callback,Xmlhttprequest,我的问题是JavaScript比XMLHttpRequest快。我不想用以下方法来解决它: setTimeout(function() {}, 100); 我的代码: function change_country(id) { if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else { xmlhttp = new ActiveXObject("Microso

我的问题是JavaScript比XMLHttpRequest快。我不想用以下方法来解决它:

setTimeout(function() {}, 100);
我的代码:

function change_country(id) {

    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
    else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

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

            var data = JSON.parse(xmlhttp.responseText);

            document.getElementById("continent").value = data.continent;
            document.getElementById("country").value = data.country;

        }
        xmlhttp.open("GET", "request_country_change.php?id=" + id, true);
        xmlhttp.send();
    }
}
代码只是一个示例,而不是原始代码。它应该是一种改变形式。因此,在本例中,它在选择字段中加载所有大陆的列表。并选择与id相关的大陆,与国家相同。但它只在select字段中加载列表,但它运行JavaScript部分

document.getElementById("continent").value = data.continent;
document.getElementById("country").value = data.country;

早起。如果我在alert或setTimeout之间切换,它可以工作,但我可以用其他方法解决它吗?

我想您希望它添加到select Other js函数中,如:

在js中

function storeContinent(val){
     document.getElementById("continent").value = val;
}

不确定我是否得到了你想要的

我想你想要它添加到选择另一个js函数中,比如:

在js中

function storeContinent(val){
     document.getElementById("continent").value = val;
}

不确定我是否得到了你想要的

太早到底是什么意思?你怎么知道如果晚一点运行它会起作用?代码运行时,
xmlhttp.responseText
的值是多少?您期望得到什么?请显示演示问题的原始代码。问题通常是,动态生成的选择列表同时必须选择存储在数据库中的选项。它应该是一种改变形式。例如,我想将一篇文章分配给另一个子类别。你真的应该发布你的实际代码。首先是一个静态选择列表的工作示例,它按照您期望的顺序执行所需操作,然后是一个动态选择列表的不完整示例。“太早”到底意味着什么?你怎么知道如果晚一点运行它会起作用?代码运行时,
xmlhttp.responseText
的值是多少?您期望得到什么?请显示演示问题的原始代码。问题通常是,动态生成的选择列表同时必须选择存储在数据库中的选项。它应该是一种改变形式。例如,我想将一篇文章分配给另一个子类别。你真的应该发布你的实际代码。首先,是一个静态选择列表的工作示例,它按照您期望的顺序执行所需操作,然后是一个动态选择列表的不完整示例。