我无法使用以下代码:
<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时它正在工作。
答案 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 />
或任何类型的新行。