我拼命地试图捕捉文本区域中的换行符。我想将 textarea 的内容存储在数据库中,然后在从数据库中提取时将其显示在 textarea 中。textarea 应该作为一个编辑框。在任何时候我都不需要在 html 中显示。
我能够让它在一个普通的 html 页面上工作,该页面通过将 textarea 中的文本转换为行数组、在字符 \r\n 上爆炸并将其分解为逗号分隔来将 textarea 内容发布到服务器行列表。然后,当我想重新显示这些行时,我将逗号替换为 \n 并获取可以在文本区域内显示的带有换行符的文本。有点破解,但它的工作原理。
但是,当我没有使用 html 将 textarea 内容发布到服务器时,它似乎不起作用,而是使用 javascript 中的 getElementByID 将它们拉出来,然后用 javascript 发布到服务器。
当我使用 html 获取 textarea 内容并在 \r\n 上展开时,我得到一个包含与行一样多的元素的数组。
但是,当我在 javascript 中使用 getElementByID 拉取 textarea 内容并在 \r\n 上展开时,我只会在行运行的数组中获得一个元素。换句话说,我没有得到换行符
任何人都知道为什么在 javascript 中拉取文本时换行符会消失,并对如何在 javascript 中保留换行符有任何建议?
谢谢。
缩写代码:javascript
getText() {
var textobj = document.getElementById("text");
var text = textobj.value;
...some code for AJAX
document.getElementById("droptext").innerHTML=xmlhttp.responseText;
... some more code for Ajax
xmlhttp.open("GET","savetext.php?text="+text,true);
xmlhttp.send();
}
html
<div id="droptext"><textarea id="text"><textarea></div>
<a href="javascript:void(0);" onclick="getText();">Save Text</a>
php
$text = $_GET['text'];
$textarray = explode("\r\n", $text);
$text = implode(",",$textarray); //converts to comma delimited list
...store in database
...fetch from database and echo text back for editing
$text = $row['text'];
$text = str_replace( ",", "\n", $text);
echo '<textarea>'.$text.'</textarea>';