getElementById没有得到textarea内容

时间:2012-05-07 00:22:08

标签: javascript getelementbyid

对于知道的人来说,这似乎很简单:当单击按钮时,此脚本会获得DIV标记,并打开包含内容的新页面。但我希望它在用户输入内容后显示textarea的内容。

有什么想法吗?代码是:

<script type="text/javascript">
  var win=null;
  function printIt(printThis)
  {
    win = window.open();
    self.focus();
    win.document.open();
    win.document.write('<'+'html'+'><'+'head'+'><'+'style'+'>');
    win.document.write('body, td { font-family: Verdana; font-size: 10pt;}');
    win.document.write('<'+'/'+'style'+'><'+'/'+'head'+'><'+'body'+'>');
    win.document.write(printThis.innerHTML);
    win.document.write('<'+'/'+'body'+'><'+'/'+'html'+'>');
    win.document.close();
    win.print();
  }
</script>
</head><body>
    
  <div id="activity5">
    <blockquote>
      <table border="0" cellpadding="3">
      </table>
      <form id="form4" name="form1" method="post" action="">
      <textarea name="Activity1a4" cols="80" rows="15" class="s23" id="ta1"></textarea>
      <p>
        <input name="print4" type="submit" id="print4" value="Print" onclick="printIt(document.getElementById('activity5')); return false"/>
          * Retain this learning activity as part of your portfolio of evidence.</p>
      <p>Check your findings with the correct answer in the back of this Learner Resource under 'Learning activity answers'.</p>
      </form>
    </blockquote>
  </div>
</body>

2 个答案:

答案 0 :(得分:2)

您可以使用.value获取textarea的内容,而不是使用.innerHTML

这意味着获取activity5 innerHTML将不包含已在子textarea中输入的文本。如果要包含该文本,则必须在textarea上单独检索带有.value的文本,并将其插入新页面的新文本区域。

答案 1 :(得分:2)

您需要使用value属性分别获取textarea的内容,然后以相同的方式明确设置它。请查看http://jsfiddle.net/EPvWV/以获取如何执行此操作的示例。