You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确获取Summernote文本编辑器中的输入值

问题描述

开发中使用Summernote富文本编辑器,初始化绑定元素代码如下:

<div id="txtDescription" class="summernote datarequired" title="Description Required"></div>

尝试使用$('#txtDescription').val()获取编辑器输入值始终失败,问题截图如下:
Summernote取值失败问题截图

问题原因

jQuery的.val()方法仅适用于input、textarea、select等原生表单元素,作用是读取这类元素的value属性值。Summernote绑定在普通div元素上初始化后,会生成独立的编辑区域DOM结构,编辑内容不会同步到原div的value属性上,因此用.val()无法拿到编辑器输入内容。

正确取值方案

直接调用Summernote官方提供的内容获取API即可,可根据实际需求选择对应方法:

  • 获取带格式的富文本HTML内容(最常用场景,存储后可直接渲染富文本效果)
const htmlContent = $('#txtDescription').summernote('code');
  • 获取无格式纯文本内容(自动过滤所有HTML标签,仅返回文字内容)
const plainText = $('#txtDescription').summernote('getText');

表单提交适配技巧

如果需要将编辑器内容随普通表单一起提交,可以新增一个隐藏的input字段,通过以下两种方式同步值即可:

// 方式1:初始化编辑器时加回调,内容变更实时同步
$('#txtDescription').summernote({
  // 其余初始化配置项
  callbacks: {
    onChange: function(content) {
      $('input[name="description"]').val(content);
    }
  }
});

// 方式2:表单提交触发时手动赋值同步
$('form').on('submit', function() {
  const content = $('#txtDescription').summernote('code');
  $('input[name="description"]').val(content);
})

补充:你贴出的原始HTML代码中div标签未正常闭合,记得补全</div>,避免编辑器初始化出现异常。

内容的提问来源于stack exchange,提问作者A. B.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 09:45:33