提问者:小点点

在textarea中动态添加html标记


为什么我的文本区域变成这个字符串来自数据库。 它被保存为varchar,我可以在数据库中看到它的确切的,这是一个粗体文本

var my_string="{{$string_from_db}}";
$('#my_textarea').val(my_string);

我想让它显示准确的文本,这是文本区域中的粗体文本,而不是html标记。


共2个答案

匿名用户

我添加了2个选项,你可以选择任何你想要的东西。

选项1-服务器端:(Laravel)

// Use this
{!! $string_from_db !!}
// instead of
{{$string_from_db}}

选项2-客户端:

如果您不想更改服务器端的任何内容,那么您可以尝试此方法,使用replace函数进行如下转换,

null

var my_string = "&ltb&gtthis is a bold text&lt/b&gt";
$('#my_textarea').val(my_string.replace(/&lt/g,'<').replace(/&gt/g,'>'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="my_textarea"></textarea>

匿名用户

使用html方法而不是使用val方法

<script>
    $(document).ready(function(){
       var my_string="&lt;b&gt;this is a bold text&lt;/b&gt;";    
       $('#my_textarea').html(my_string); // <<<< LIKE THIS
    });
</script>

JS Bin演示

注意:这只适用于textarea,并且在任何必要的验证之后,以防止用户注入任何有害的代码。