带换行符的Javascript inserttext

时间:2017-08-04 07:06:07

标签: javascript php

我无法使用以下代码:

<button type="button" class="btn btn-success btn-sm pull-right" style="margin-bottom:5px;margin-right:1px;" onclick="insertText('replytext', '[quote=<?php echo user::getUsername($message['poster']);?> date=<?php echo $message['post_date'];?>]<?php echo $message['message'];?>[/quote]');">
                            <i class="fa fa-reply" aria-hidden="true"></i></button>


<textarea class="form-control" rows="5" name="replytext" id="replytext"
                      style="width:100%;background-color:black;color:white;resize: none;"></textarea>



 <script>
        function insertText(elemID, replytext)
        {
            var elem = document.getElementById(elemID);
            elem.innerHTML += replytext;
        }
    </script>

当replytext包含新行时,它不会像使用此值一样用texta填充textarea。任何人都知道如何解决这个问题?它与回复带有/ n或br的消息有关。

我已经测试过了。当没有/ n或br时它正在工作。

2 个答案:

答案 0 :(得分:1)

新行不会显示在视图中,因为您应该将“新行”(\n)转换为html换行符,即<br />

试试这个:

function insertText(elemID, replytext)
{
    replytext = replytext.replace(/\r?\n/g, "<br />");
    var elem = document.getElementById(elemID);
    elem.innerHTML += replytext;
}

replace(/\r?\n/g, "<br />")语句会将“新行”替换为HTML换行符(<br />)。

答案 1 :(得分:1)

(代表作者提问回答)

str_replace(PHP_EOL, '[br]',($_POST['replytext']))

这完成了这项工作。 onClick函数不允许<br />或任何类型的新行。