我的编码:
...
<textarea name="TextArea1" id="TextArea" style="height ; width" ></textarea>
...
<script type="text/javascript">
var txt_element = document.getElementById("TextArea");
document.write (txt_element.childNodes[0].nodeValue);
</script>
...
但它不会识别“输入/返回”键,而是显示“”
非常感谢
答案 0 :(得分:4)
为了扩展Chris的答案,问题是浏览器正在呈现您编写的文本,就像呈现任何其他html一样,这意味着空格(包括回车)被视为单词分隔符,不是行或段落分隔符。并且多个连续的空格字符被缩减为单个空格。这在html spec。
中进一步解释这与处理textarea元素中的文本的方式不同。
正如Chris建议的那样,你需要用html <br>
元素替换字符串中的回车:
var enteredText = document.getElementById("TextArea").value;
var updatedText = enteredText.replace(/\n/g, '<br />');
document.write(updatedText);
注意:您应该能够直接使用.value
获取textarea的值,而不是说.childNodes[0].nodeValue
。
注2:我是克里斯所说的关于document.write()
的第二句话 - 它通常不是最好的选择。
注意3:如果您正在为非Windows系统提供服务,则可能还需要替换\r
。
答案 1 :(得分:0)
文本区域使用\n
来指定一个新行,这些行应该有效:
string = document.getElementById("TextArea")childNodes[0].nodeValue;
string = string.replace(/\n/g, '<br />');
document.write('string');
不确定你是不是只是四处闲逛,但我觉得有必要提一下,一般来说你永远不应该使用document.write()。