2016-11-18 52 views
0

我有一個代碼,它在用戶更改dropbox中的值時起作用,它從數據庫中提取相關值並顯示在textarea中。 而我有一個清除按鈕來清除textarea的值。 現在,我的問題是,當清除按鈕,用戶點擊它清除textarea的值,當再一次用戶從下拉框選擇任何值,它不顯示在文本區域,直到用戶relvant值刷新頁面在javascript中請求完成後將readyState更改爲0

my script for showing relevant value in textarea("box is the id of textarea")

<script> 
function showoffer(str) { 
var xhttp; 
if (str == "") { 
document.getElementById("box").innerHTML = ""; 
return; 
} 
xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
if (this.readyState == 4 && this.status == 200) { 
    document.getElementById("box").innerHTML = this.responseText; 

} 

}; 

xhttp.open("GET", "getc.php?id=<?php echo $aff;?>&q="+str, true); 
xhttp.send(); 
} 
</script> 

我對clearall按鈕腳本

<script> 
function clearall() 
{ 
    document.getElementById("box").value=""; 
} 
</script> 
+0

您的問題正文和問題標題完全不同,據我所知。 – Paul

回答

0

的竊聽行爲是由於事實,你想同時使用innerHTML以及value建議使用value獲取/設置textareas,但無論如何這裏是一個解釋,但首先你不應該該瀏覽器保持內部一致性當innerHTML改變時,值總是更新,但它不是即其他方式。 chaning值不會改變的innerHTML

的第一時間,當阿賈克斯成功分配說「你好」,以textarea的使用innerHTML注意,這被反映在其價值屬性也因此,如果你做alert(document.getElementById("box").value)值將同上述分配(「hello」),但當你按下clearall() 時,它只會抹掉value屬性,並且textare仍然存在,即alert(document.getElementById("box").innerHTML)不會是空的。現在,這種一致性的中斷可能是錯誤行爲背後的原因;用value替代innerHTML將修復

+0

thanx幫忙 –

+0

不用擔心.. :) – Viney

相關問題