layui富文本编辑器POST数据为空的处理

Layui 是一款采用自身模块规范编写的情怀型前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。因此深受FE们的喜爱。

layui富文本编辑器

但是在最近项目中发现layui中整合百度ckeditor之后,通过form表单提交时,后台接收到的富文本编辑器中的值为空值,经过排查前端也没有获取到富文本编辑器的内容。

但是去掉富文本编辑器之后,单纯<textarea>却又是正常的,所以初步断定是textarea没有获取到CKEDITOR中的内容。

解决方法:

主要看script部分,为了完整展示,截取了部分代码。

  1. <form class="layui-form layui-box" style='padding:25px 30px 20px 0' action="__SELF__" data-auto="true" method="post">
  2.     <div class="layui-form-item">
  3.         <label class="layui-form-label">文章内容</label>
  4.         <div class="layui-input-block">
  5.             <textarea name="content" required="required" class="layui-textarea"></textarea>
  6.         </div>
  7.     </div>
  8.     <div class="hr-line-dashed"></div>
  9.     <div class="layui-form-item text-center">
  10.         <button class="layui-btn" type='submit'>保存数据</button>
  11.         <button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
  12.     </div>
  13.     <script>
  14.         require(['ckeditor'], function () {
  15.            //创建编辑器
  16.             var editor = window.createEditor('[name="content"]');
  17.            //获取编辑器内容
  18.             var content = editor.getData();
  19.            //异步将内容同步textarea
  20.             editor.sync(content);
  21.         });
  22.         window.form.render();
  23.     </script>
  24. </form>

主要就是将CKeditor编辑器中的内容通过异步同步到textarea中。如果在这里你用的不是百度的富文本编辑器,而是官方的,那么也可以参考官方文档解决。思路都是一样的。

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!