javascript - Quill JS - 检查表单提交上的文本是否更改

标签 javascript jquery quill textchanged

我正在使用 Quill(富文本)并且需要找到一种方法来检查在页面提交表单时文本是否已更改。我对使用 Quill 很陌生,一直在查看事件 here .每次文本更改时都使用文本更改触发器(很明显),但我在页面上还有其他表单输入控件,这些控件在表单提交时被检查以查看它们是否已更改......我需要我的 RTF 框来做同样的事情。

编辑

我已经使用下面的示例成功地触发了事件。我现在的问题是,即使在页面加载时预先填充了编辑器,事件似乎也会触发。我不想承认这些初始加载,只有当文本已被用户更改时。

最佳答案

两种方式:

1) 监听 quill 变化,如果发生任何变化,则发出一个标志,告诉您的表单内容已更改(流程:如果您添加一个字符,然后删除它,即使结果内容相同,您的标志也会为真)

使用:

let changes = false
quill.on('text-change', function(delta, oldDelta, source) {
  changes = true
})

2) 比较文档的两个快照以检测前端是否发生更改。您可以比较字符串(使用 quill.getText())这是最简单的,但是您可能会错过很多东西,我建议比较对象(使用 quill.getContents()) 并使用 lodash 或其他深度相等对象方法检查。

使用:

const initialContents = quill.getContents()
const beforeSubmitContents = quill.getContents()
const hasChanged = _.isEqual(initialContents.ops, beforeSubmitContents.ops)

关于javascript - Quill JS - 检查表单提交上的文本是否更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50107174/

相关文章:

javascript - 在羽毛笔编辑器中更改标签?

angular - 如何在 Angular 应用程序中添加自定义 Quill 工具栏

javascript - 从字符串渲染 html 标签

PHP 在 jQuery 加载中丢失连接字符串

javascript - 如何正确处理在 node-webkit 中打开 _blank 窗口的链接?

javascript - 多行文本 chop

javascript - 如何根据 DOM 元素的内容在 jQuery 中获取对 DOM 元素的引用?

html - Quill:如何以编程方式将 CSS 样式应用于某些文本?

javascript - 如何将系列添加到特定索引处的柱形图

javascript - 单击菜单滚动大图像