2013-10-09 76 views
0

我使用下面的代碼來撥打電話到另一個腳本:獲取類型錯誤使用的getElementById

function savecoupon<?php echo $r['id']; ?>() { 
    var listingid = document.savecouponform<?php echo $r['id']; ?>.listingid.value; 
    http.open('get', 'script/save_coupon.php?listingid='+listingid+''); 
    http.onreadystatechange = handleResponse; 
    http.send(null); 
} 

function handleResponse() { 
    if(http.readyState == 4){ 
     response = http.responseText; 
     alert(response); 
     document.getElementById(response).innerHTML = "Saved"; 
    } 
} 

alert(response)正顯示出正確的結果,這是我更換的div元素的ID。但由於某些原因,當我把響應進入的getElementById我收到以下錯誤螢火蟲:

TypeError: document.getElementById(...) is null 
document.getElementById(response).innerHTML = "Saved"; 

如果我更換document.getElementById("savecouponarea1327").innerHTML = "Saved";一切的innerHTML命令工作,因爲它應該。在getElementById中沒有讀取響應?

+0

而不是使用'alert'進行調試,在瀏覽器的調試器中使用一個斷點來檢查*正確*內容。 'alert'可能會觸發隱式轉換。 –

+0

只需修剪()你的「響應」,看看。 – PSL

+0

我願意下注回覆有額外的字符。 'console.log(escape(response));' – epascarello

回答

1

從基本的調試

console.log(escape(response)); 

表明,它有額外的字符:%0D%0Asavecouponarea1327

%0D是回車符。 %0A是換行字符。

您的服務器端代碼中有多餘的行。

相關問題