javascript 手动清空textarea后 不能更改innerHTML? 50
调用一个算法生成一个str,来更改一个textarea里的innerHTML,每次调用都会将innerHTML置空。但是如果事先点击了textarea并且输入了什么东西,...
调用一个算法生成一个str,来更改一个textarea里的innerHTML,每次调用都会将innerHTML置空。
但是如果事先点击了textarea并且输入了什么东西,就没办法再将其置空或者改变其值了。
为什么?
如果非要看代码如下:
function getResult() {
//清空原结果
alert(document.getElementById("txtaResult").innerHTML); //这里可以正确显示上次结果
document.getElementById("txtaResult").innerHTML = "";//这里就不能更改了
document.getElementById("txtaResult").innerHTML = "result x";
}
html:
<input type="button" id="btnMNFA" value="function" onclick="getResult()"/>
<br />
<br />
结果:
<textarea id="txtaResult" cols="20" rows="10"></textarea> 展开
但是如果事先点击了textarea并且输入了什么东西,就没办法再将其置空或者改变其值了。
为什么?
如果非要看代码如下:
function getResult() {
//清空原结果
alert(document.getElementById("txtaResult").innerHTML); //这里可以正确显示上次结果
document.getElementById("txtaResult").innerHTML = "";//这里就不能更改了
document.getElementById("txtaResult").innerHTML = "result x";
}
html:
<input type="button" id="btnMNFA" value="function" onclick="getResult()"/>
<br />
<br />
结果:
<textarea id="txtaResult" cols="20" rows="10"></textarea> 展开
2个回答
展开全部
你好!!
function getResult() {
//清空原结果
alert(document.getElementById("txtaResult").innerHTML); //这里可以正确显示上次结果
document.getElementById("txtaResult").innerHTML = "";//这里就不能更改了
document.getElementById("txtaResult").innerHTML = "result x";
}
/**
经过一次调用后,
document.getElementById("txtaResult").innerHTML的值已经为"result x"了,
所以当第二次调用时,
会直接弹出"result x"--->然后清空--->然后再赋值"result x",
然后就这样开始了它无尽的循环了.
**/
追问
我的意思是,你可以在一开始不点击按钮的时候就尝试着在textarea里输入一些东西
然后这个按钮就再也木有用了,虽然每次提示都会是result x
你可以试试
我觉得这是个bug
如果把innerHTML改成value就不会 不知道为什么
追答
它这个内容必须得写在标签中间,但是通过js操作它的内容时,大都通过value来操作。
这个标签没有value属性,但是HTMLTextAreaElement元素有value属性.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询