我有一个代码,当用户更改dropbox中的值时,它会从数据库中获取相关值并显示在textarea中。 我有一个清晰的按钮来清除textarea的值。 现在,我的问题是,当用户单击清除按钮时,它会清除textarea的值,当用户再次从dropbox中选择任何值时,它不会在textarea中显示relvant值,直到用户刷新页面
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>
我的clerall按钮脚本
<script>
function clearall()
{
document.getElementById("box").value="";
}
</script>
答案 0 :(得分:0)
错误行为是由于您尝试同时使用innerHTML
以及value
,建议仅使用value
获取/设置textareas,但无论如何这里是解释,但首先你不应该浏览器保持内部一致性值在innerHTML改变时总是更新,但不是反过来即。 chaning值不会改变innerHTML
第一次当ajax成功时,你使用innerHTML
对textarea说“hello”,注意这也会反映在它的value属性中,所以alert(document.getElementById("box").value)
值将与上面指定的值相同(“你好”)但是当你按下clearall()
它只擦除了value属性和textare剩余,即alert(document.getElementById("box").innerHTML)
不会为空。现在,这种一致性的中断可能是导致错误行为背后的原因;将innerHTML
替换为value
将解决该问题