Summernote初始化后无法获取编辑内容怎么办?
我用Summernote做了一个简单的富文本编辑器,初始化没问题,但点保存时拿不到用户输入的内容,一直返回空字符串。明明页面上能正常输入文字啊。
我试过用 $('#summernote').summernote('code') 获取,也试过在表单提交前打印,结果都是空的。是不是我初始化方式有问题?
$(document).ready(function() {
$('#summernote').summernote({
height: 200,
toolbar: [
['style', ['bold', 'italic']],
['insert', ['link']]
]
});
$('#saveBtn').on('click', function() {
const content = $('#summernote').summernote('code');
console.log(content); // 总是输出 <p><br></p>
});
});
你代码里用
$('#summernote').summernote('code')其实是对的,但返回
说明编辑器里其实没内容,或者初始化有问题。先确认你 HTML 里是不是这样写的:
必须是 textarea,不能是 div,虽然 Summernote 支持 div,但很多版本对 div 初始化后内容同步有问题,尤其老版本。
再检查下你引入的 JS 顺序对不对,必须是:
jQuery → summernote.js → summernote.css(如果用了语言包也要在后面)
直接用这个最稳的初始化代码试试:
如果还是空的,打开浏览器控制台,看有没有报错,比如 jQuery 没加载、summernote.js 加载失败、或者重复初始化(多次调用 .summernote() 会破坏内容)。
常见坑就这几个:
1. DOM 元素不是 textarea
2. jQuery 版本太老(2.x 以下)
3. 重复初始化
4. 表单被其他 JS 阻止了提交或重置了
你先按上面改,一般都能解决。不行把完整 HTML 和 JS 贴出来我帮你看看。