【发布时间】:2018-03-29 16:32:57
【问题描述】:
我已经使用以下代码(从 TypeScript 代码生成)为 textarea 列表(大约 12 个)启动了 tinyMCE。
tinymce.init({
selector: this.selector,
setup: function (editor) {
editor.on('change blur', function () {
editor.save();
tinymce.triggerSave();
console.info('tinyMCE change event fired.');
});
},
branding: this.branding,
menubar: this.menubarFlag,
browser_spellcheck: this.browser_spellcheck,
fontsize_formats: this.fontsize_formats,
block_formats: this.block_formats,
toolbar1: this.toolbar1,
height: this.height,
plugins: this.plugins
});
我尝试了两个 editor.save();和 tinymce.triggerSave();在 tinyMCE 更改事件上。但是,尽管内容已更新到 textarea,但隐藏的 textarea 更改事件仍然没有触发。
我需要 textarea 的事件通过添加 name 属性来实际向表单添加一个元素。
$(divObj).find('.segment-input').change(function () {
$(divObj).find('input[type="hidden"]').attr('name', $(divObj).find('input[type="hidden"]').attr('name-nochange'));
$(divObj).find('input[type="hidden"]').removeAttr('name-nochange');
});
【问题讨论】:
-
你能创建一个最小的、完整的、可验证的例子来展示你所构建的吗?这将帮助人们了解正在运行的代码和时间。 stackoverflow.com/help/mcve
-
感谢@michael-fromi,问题已更新。我正在使用文本区域更改事件通过将 name-nochange 属性重命名为 name 属性来实际将元素添加到表单中。这不能在 tinyMCE 更改事件上完成,因为它初始化了大约 12 个文本区域。
-
当您在 TinyMCE 中进行更改时,您不会与底层
textarea交互,因此您不会触发任何其原生事件。当编辑器的事件被触发时,您可以尝试以编程方式执行此操作。有什么原因不能使用编辑器事件与页面的 DOM 进行交互? -
@michael-fromi,正如我之前提到的,tinyMCE 在同一页面上为近 12 个实例初始化。是否可以访问用户当前正在处理的特定文本区域?