2014-01-15 66 views
-1
function ch(x, y) { 
    var h = 'OFF'; 
    document.getElementsByName("ch_u").item(x).innerHTML = "<img src='image/loader.gif' align='absmiddle'>"; 

    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 

      var c = document.getElementsByName("ch_u").item(x).innerHTML = xmlhttp.responseText; 
      if (c == h) { 
       alert("1"); 
      } else { 
       document.write(c, h); 
      } 
     } 
    } 
    xmlhttp.open("POST", "check.php", true); 
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xmlhttp.send('y=' + y); 
} 

总是转到ELSE,虽然(C & 1H)值是OFF,因为打印(C & h)为OFF在其他 我认为,(如果)有问题?条件不工作如果声明

+4

你确定它们完全一样吗?周围没有空白?什么'xmlhttp.responseText'返回? – putvande

+0

尝试记录'c'的值,看看它是否真的是你期望它是 – Syjin

+0

是的,我相信.... – user3001104

回答

-2

对不起,错过了这个问题。尝试将警报('1')更改为警报(h)。 我认为你的回调函数中的h与函数ch中的h不一样。

+0

实用主义者,为什么? – user3001104

+0

试着在你的回调函数中提醒(h);我认为它应该是未定义的。如果是的话,你必须在'xmlhttp.onreadystatechange = function(){' – Pragmatist

+0

Pragmatist之后放置'var h ='OFF';'不能打印“1”如何打印“h”;打印h&c true – user3001104