如何处理文本区多行输入,如果用户点击“enter/return”;关键

how to process textarea multiple line input if user hit "enter/return" key

本文关键字:用户 enter 关键 return 如果 处理 何处理 文本区 输入      更新时间:2023-09-26

my coding:

 ...
 <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>
 ...

但是它不识别回车键而是显示"

多谢

进一步阐述Chris的回答,问题在于浏览器呈现您所写的文本的方式与呈现其他html片段的方式相同,这意味着空白(包括回车)被视为单词分隔符,而不是行或段落分隔符。多个连续的空白字符被压缩成一个空格。这在html规范中有进一步的解释。

这与它在textarea元素中处理文本的方式不同。

所以正如Chris建议的,你需要用html <br>元素替换字符串中的回车符:

var enteredText = document.getElementById("TextArea").value;
var updatedText = enteredText.replace(/'n/g, '<br />');
document.write(updatedText);

注意:您应该能够直接使用.value而不是说.childNodes[0].nodeValue来获取textarea的值。

注释2:我同意Chris所说的document.write() -它通常不是最好的选择。

注3:如果您是为非windows系统提供服务,您可能还需要替换'r

文本区域使用'n指定新行,沿着这些行应该可以工作:

string = document.getElementById("TextArea")childNodes[0].nodeValue;
string = string.replace(/'n/g, '<br />');
document.write('string');

不确定您是否只是在闲逛,但我觉得有必要提一下,一般来说,您不应该使用document.write()。