如何将带有来自html textarea的换行符的字符串插入到html表中?

时间:2014-06-04 12:48:14

标签: javascript html html5 textarea jquery-datatables

我有一个HTML textarea,其中一个字符串分为多行。例如

cat
dog
horse

我接下来要做的是将这些字符串插入到html表中。 HTML表(我正在使用jquery.datatables)似乎忽略了换行符。所以我是

<textarea id='txttest' name="texttest" ></textarea>

我尝试过更换文字,但这两种方法都不起作用。

var res = $("textarea#txttest").val().replace(/\/n/,"<br>");

var res = $("textarea#txttest").val().replace(/&#10/,"<br>");

然后我将结果插入到我的数据表中

$('table#table_flows').dataTable().fnAddData( [
  res ] );

但新行不会被&lt; br&gt;

我该怎么做?

谢谢。

3 个答案:

答案 0 :(得分:1)

您的.replace中有一个额外的斜杠,您需要添加g才能使其成为全局替换,而不仅仅是第一次出现。

尝试

var res = $("textarea#txttest").val().replace(/\n/g,"<br>");

Example

答案 1 :(得分:1)

尝试此操作:使用NewLine作为分隔符拆分为数组,然后使用<br />

重新加入字符串数组
var res = $("textarea#txttest").val().split("\n").join('<br />');

$('table#table_flows').dataTable().fnAddData( [  res ] );

Check the result here

答案 2 :(得分:0)

我没有尝试使用replace()的任何示例,就像您刚刚做的那样。相反,我使用split()组合了一个示例,该示例将值分割为\n字符。

http://jsfiddle.net/TY22g/

var cell = document.getElementsByTagName("td")[0];

var textarea = document.getElementsByTagName("textarea")[0];
textarea.addEventListener("change", function() {
    var array = textarea.value.split("\n");
    var i = 0, length = array.length;
    for (i; i < length; i++) {
        cell.innerHTML += array[i] + "<br/>";
    }
});