我应该为<textarea>使用.innerHTML或.value吗?</textarea>

时间:2013-11-14 19:12:19

标签: javascript html forms

这是Does this not work because I can't use a script in a div?

的后续行动

我离开时,我有这个代码:
按钮脚本:

<script>
    var correctProperty = "value";
    function run(){
        document.getElementsByTagName("head")["0"].innerHTML += eval(document.getElementById("editorHead")[correctProperty]);
        document.getElementById("result").innerHTML = eval(document.getElementById("editorBody")[correctProperty]);
    }
</script>

textareas(在非div文本之间没有classstyle属性&amp;):

<textarea id="editorHead" rows="20"></textarea>
<textarea id="editorBody" rows="20"></textarea>
<div id="result"></div>

目前这不起作用,我之前的一个答案(已接受的答案)说correctProperty应该设置为"innerHTML"。应该呢?或问题是干扰window(像之前一样)?或者,......我应该将其放在表单中,然后使用"value"

3 个答案:

答案 0 :(得分:2)

您可以通过“value”属性访问和更新textarea元素的值。

尝试:

 var theValue = document.getElementById("editorHead").value;

更新<html>元素没有多大意义。

答案 1 :(得分:2)

Javascript innerHTML会更新textarea中的文本,但它不会在浏览器窗口中显示您的更改;如果你第二次使用它。例如,如果你有一些按钮来更新textarea中的文本;此按钮将首次插入文本,但第二次插入文本虽然它会在textarea中插入文本(可以通过firebug或chrome开发人员工具证明),但这不会显示在浏览器窗口中。相反,如果你使用值,这将在浏览器中显示(我在chrome和firefox中测试过它)。

所以我认为你应该使用.value

答案 2 :(得分:0)

不知道你为什么使用eval ...下面的内容已得到纠正..除此之外不确定你要完成什么。值和innerHTML都将从textareas中提取,问题是你只需要返回文本或可能的HTML值。

function run(){
    document.getElementsByTagName("html")[0].innerHTML += document.getElementById("editorHead").innerHTML;
    document.getElementById("result").innerHTML = document.getElementById("editorBody").innerHTML;
}