Javascript 没有jquery的for循环中的Ajax
我有一个for循环调用ajax方法Javascript 没有jquery的for循环中的Ajax,javascript,ajax,Javascript,Ajax,我有一个for循环调用ajax方法 function viderTableauConteneur() { var caf = document.getElementById('CAF').value; var tabConteneurAjouter = caf.split("#"); for (var i = 0; i < tabConteneurAjouter.length; i++) { if(!verifierConteneurAppart
function viderTableauConteneur()
{
var caf = document.getElementById('CAF').value;
var tabConteneurAjouter = caf.split("#");
for (var i = 0; i < tabConteneurAjouter.length; i++) {
if(!verifierConteneurAppartienClient(tabConteneurAjouter[i]));
removeConteneur(tabConteneurAjouter[i]);
};
}
function verifierConteneurAppartienClient(serialNumber)
{
var e = document.getElementById("id_client");
var idClient = e.options[e.selectedIndex].value;
var xhr = getXhr();
var res = 12;
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
if(xhr.responseText == "0")
return false;
else if(xhr.responseText == "1")
return true;
}
}
xhr.open("GET","index.php?option=com_tkcontrack&controller=facture&task=verifierConteneurAppartienClient&refConteneur="+serialNumber+"&id_client="+idClient,true);
xhr.send();
}
函数viderTableauConteneur()
{
var caf=document.getElementById('caf').value;
var tabConteneurAjouter=caf.split(“#”);
对于(变量i=0;ixhr.responseText
我得到了“1”,但是当我在viderTableauConteneur
方法中警告结果时,我总是得到“未定义的
”
请提供任何帮助您可以通过以下方式修改代码:
function viderTableauConteneur()
{
var caf = document.getElementById('CAF').value;
var tabConteneurAjouter = caf.split("#");
for (var i = 0; i < tabConteneurAjouter.length; i++) {
verifierConteneurAppartienClient(tabConteneurAjouter[i],
function()
{
alert('true');
},
function()
{
alert('false');
removeConteneur(tabConteneurAjouter[i])
}
);
}
}
/* callbcakIfTrue and callbackIfFalse have to be 2 functions
that will be called respectiveley if the return of the
ajax call is true or false.
*/
function verifierConteneurAppartienClient(serialNumber, callbackIfTrue, callbackIfFalse)
{
var e = document.getElementById("id_client");
var idClient = e.options[e.selectedIndex].value;
var xhr = getXhr();
var res = 12;
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
if(xhr.responseText == "1")
callbackIfTrue();
else
callbackIfFalse();
}
}
xhr.open("GET","index.php?option=com_tkcontrack&controller=facture&task=verifierConteneurAppartienClient&refConteneur="+serialNumber+"&id_client="+idClient,true);
xhr.send();
}
函数viderTableauConteneur()
{
var caf=document.getElementById('caf').value;
var tabConteneurAjouter=caf.split(“#”);
对于(变量i=0;iVerifierContentureAppartienclient
本身返回什么结果?答案是“none”-在该函数中没有return
语句,只有在嵌套回调中。谢谢,我一直在读这个,但我没有注意其他答案