2016-11-18 49 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

相关问题