Textarea值更新未反映在页面中

时间:2011-01-18 12:23:03

标签: javascript

我正在尝试使用Javascript更新textarea的值。代码类似于:

console.warn("Before set, value is " + document.getElementById('myTextArea').value);
document.getElementById('myTextArea').value = 'OMGWTFBBQ';
console.warn("After set, value is " + document.getElementById('myTextArea').value);

虽然Firefox和Chrome控制台显示value属性已更新,但这并未反映在页面本身中。

从另一个元素的onfocus处理程序调用特定函数。 textarea本身是通过使用相同的方法懒洋洋地初始化的:

var messageText = document.createElement('textarea');
messageText.id = 'myTextArea';
someParent.appendChild(messageText);

显然,如果我使用控制台而不是让脚本运行它确实有效。

1 个答案:

答案 0 :(得分:2)

经过一些测试后,看起来它应该像你想要的那样工作,所以不确定为什么它没有,你可以尝试使用以下代替,但看看它是否解决了你的问题:

console.warn("Before set, value is " + document.getElementById('myTextArea').value);
document.getElementById('myTextArea').firstChild.textContent = 'OMGWTFBBQ';
console.warn("After set, value is " + document.getElementById('myTextArea').value);

如果这对您不起作用,那么关于您的页面的一些内容非常奇怪:)

尝试一些非常简单的内容,如下所示:

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script>

$(function(){
console.warn("Before set, value is " + document.getElementById('myTextArea').value);
document.getElementById('myTextArea').firstChild.textContent = 'OMGWTFBBQ';
console.warn("After set, value is " + document.getElementById('myTextArea').value);

});
</script>
</head>
<body>
<textarea id="myTextArea">hey</textarea>
</body>
</html>

如果这样做,那么浏览器没有错,你需要在代码中找到问题。如果这不起作用,你可以责怪浏览器:)