改变textarea的价值

时间:2011-04-03 07:27:43

标签: javascript

我编写此脚本来更改textarea的值,但我没有这样做。我的代码出了什么问题?

<html>
    <head>
        <script type="text/javascript">
            document.getElementsByName("status").innerHTML = "hi";
            document.getElementsByName("status").title= "hi";
            document.getElementsByName("status").placeholder= "hi";
        </script>
    </head>
    <body>
        <textarea placeholder="What's on your mind?" onfocus="window.UIComposer &amp;&amp; UIComposer.focusInstance(&quot;c4d981e9a2c98b0483252333&quot;);" name="status" id="c4d981e9a2c98b0483252333_input" title="What's on your mind?" class="DOMControl_placeholder UIComposer_TextArea">What's on your mind?</textarea>
    </body>
</html>

5 个答案:

答案 0 :(得分:5)

如果您尝试使用:

var textarea = document.getElementById('c4d981e9a2c98b0483252333_input');
textarea.value = 'hi';

它应该有用。

否则,由于getElementsByName的工作方式,您需要为调用提供一个索引(从零开始),以识别您要使用哪个textareas:

var textarea = document.getElementByName('status')[0]; // selects the first element of name 'status'
textarea.value = 'hi';

答案 1 :(得分:5)

两个问题

首先,document.getElementsByName返回一个NodeList(就像一个数组),而不是一个元素。

其次,在元素实际存在之前,您不会延迟JS的执行。所以它无论如何都找不到它。

  1. 更改为document.getElementsByName("status")[0]
  2. 移动<script>元素,使其在 textarea后显示为
  3. 我也不习惯使用innerHTML来修改表单控件。我转而转而使用value

答案 2 :(得分:2)

<script type="text/javascript">
   document.getElementsByName("status")[0].value = "hi";
</script>

答案 3 :(得分:0)

将此脚本放入正文

<script type="text/javascript">
    document.getElementById("status").value= "hi";
</script>

将getElementsByName更改为getElementById

getElementsByName - &gt;返回元素数组 getElementById - &gt;返回单一控件..

然后将脚本放在body标签之间而不是标题.....

答案 4 :(得分:-1)

<html>
<head>
</head>
<body>

<textarea placeholder="What's on your mind?" onfocus="window.UIComposer &amp;&amp; UIComposer.focusInstance(&quot;c4d981e9a2c98b0483252333&quot;);" name="status" id="c4d981e9a2c98b0483252333_input" title="What's on your mind?" class="DOMControl_placeholder UIComposer_TextArea">What's on your mind?</textarea>


<script type="text/javascript">
document.getElementById("c4d981e9a2c98b0483252333_input").value = "hi";
document.getElementsByName("status")[0].value = "hi";
</script>
</body>
</html>