我注意到,当我尝试调用两个不同的函数时,如果使用方括号和不使用方括号编写,则它们的行为将有所不同。因此,仅当我编写方括号showTypes()时第一行才有效,而没有方括号showPrice的第二行才有效(showPrice()不起作用)。这怎么可能?
这两个函数都使用对服务器的http请求。
document.addEventListener("load", showTypes());
document.getElementById("work_type").addEventListener("change", showPrice);
这些功能:
function showTypes()
{
let xmlhttp = createXMLHttp();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var types_array = new Array();
types_array = JSON.parse(this.responseText);
putTypesToDropwdown(types_array, "work_type");
}
};
xmlhttp.open("GET", "../php/functions.php?createOptions=true", true);
xmlhttp.send();
}
function showPrice()
{
let type = document.getElementById("work_type").value;
let xmlhttp = createXMLHttp();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("work_cost").innerHTML = this.responseText;
document.getElementById("work_cost").value = this.responseText;
}
};
xmlhttp.open("GET", "../php/functions.php?type=" + type, true);
xmlhttp.send();
}
也许与我的xmlhttp请求有关?