本文介绍如何在layui框架中实现富文本编辑器与textarea的双向数据同步。通过自定义表单验证规则调用layedit.sync()将编辑器内容写入textarea,并利用layedit.setContent()将后端返回数据反向渲染至编辑器,确保前后端数据一致。
富文本编辑器向textarea同步数据
首先实现将富文本编辑器的内容传递至隐藏的textarea字段。
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">资讯内容</label>
<div class="layui-input-block">
<textarea name="content" id="demo" placeholder="请输入资讯内容" class="layui-textarea" lay-verify="content"></textarea>
</div>
</div>
在HTML结构中,需为对应的textarea元素添加lay-verify属性以启用验证机制。
layui.use(['form','layedit'], function() {
var form = layui.form,
layer = layui.layer,
$ = layui.jquery,
var layedit = layui.layedit;
//创建编辑器
index = layedit.build('demo',{
tool:[
'strong' //加粗
,'italic' //斜体
,'underline' //下划线
,'del' //删除线
,'|' //分割线
,'left' //左对齐
,'center' //居中对齐
,'right' //右对齐
,'link' //超链接
,'unlink' //清除链接
,'face' //表情
]
}); //建立编辑器
//自定义验证规则
form.verify({
content:function () {
layedit.sync(index);
}
});
})
初始化富文本编辑器实例,并在表单验证逻辑中执行同步操作。
通过上述配置,即可实现富文本编辑器内容自动同步至关联的textarea中。
textarea或后端数据向富文本编辑器同步
其次,实现将textarea或后端数据同步至layui富文本编辑器显示。
layedit.setContent(index,$str);
此处复用的变量名index仍指向之前创建的编辑器实例。
$str变量通常代表通过Ajax请求从后台获取的HTML字符串数据。
以上即为layui富文本编辑器与textarea之间值相互传递的完整实现方案,供开发者参考使用。