使用 v-model 从文本区域获取新行 - VueJS



我担心如何从文本区域获取字符串,但也要通过按 Enter 和 TAB 空格来获取添加的每个新行。优先级是获取每个新行,因此我可以使用该字符串添加到段落中,但要尊重新行,TAB 空格。

例:

文本区域文本:http://prntscr.com/kvbbcv。

当我为段落添加价值时: http://prntscr.com/kvbbur

再举一个例子:http://prntscr.com/kvhmca

解决此问题的最佳做法是什么?

法典:

<textarea v-model="comment"></textarea>
<p>{{ comment }}</p>

我找到了解决此问题的解决方案。

解决方案是使用<div contenteditable></div>并在更改其中的内容时使用@input="contentEditableChange()"从此<div>中获取值

该函数将以 HTML 形式返回值。但是使用v-html您可以将html字符串转换为html预览。

所以最终的解决方案代码是:

<div id="unique-element" @input="contentEditableChange()" contenteditable></div>
<p v-html="message"></p>

方法:

contentEditableChange() {
this.message = document.getElementById("unique-element").innerHTML;
},

如果你使用 ckeditor,你可以这样尝试

<ckeditor v-model="comment"></ckeditor>    
<p v-html>{{comment}}</p>

因为 ckeditor 会自动添加新行。 或者,如果您使用文本区域,请手动添加<br>标记。

最新更新