我正在尝试使用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);
显然,如果我使用控制台而不是让脚本运行它确实有效。
答案 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>
如果这样做,那么浏览器没有错,你需要在代码中找到问题。如果这不起作用,你可以责怪浏览器:)