我在这里有两个功能,第一个由按钮触发,它意味着触发第二个功能,它将改变伴随html区域的第一个按钮的内部html。
我的问题是如何将第一个函数INTO中的参数传递给第二个按钮,而textfield具有相同的idnumber。
function doLoad(idnumber, id) {
var file = _(id).files[0];
_("Btn1_QP_"+idnumber).style.display = "none";
_("Display_QP_"+idnumber).innerHTML = "Image uploading......";
var formdata = new FormData();
formdata.append("stPic", file);
var ajax = new XMLHttpRequest();
ajax.addEventListener("load", completeHandler, false);
ajax.open("POST", "pho_stem3.php");
ajax.send(formdata);
}
function completeHandler(event) {
_("Display_QP").innerHTML = 'wahooo';
}
}
在函数中,doLoad idnumber由按钮给出,用于标识("Btn1_QP_"+idnumber)
如何在事件监听器中的第二个函数completeHandler
中实现相同的选择性能力。
我试过了
ajax.addEventListener("load", completeHandler(idnumber), false);
ajax.addEventListener("load", ("completeHandler"+idnumber), false);
两个都不行。我怎样才能保留并传输来自doLoad的原始参数...
答案 0 :(得分:1)
您可以传递相同的ID号以响应ajax:
function doLoad(idnumber, id) {
var file = _(id).files[0];
_("Btn1_QP_" + idnumber).style.display = "none";
_("Display_QP_" + idnumber).innerHTML = "Image uploading......";
var formdata = new FormData();
formdata.append("stPic", file);
var ajax = new XMLHttpRequest();
ajax.open("POST", "pho_stem3.php");
ajax.send(formdata);
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
completeHandler(idnumber);
}
}
}
function completeHandler(idnumber) {
_("Display_QP_" + idnumber).innerHTM = 'wahooo';
}