将tinyMCE内容添加到序列化数组(WordPress)
问题描述:
我在我的(WordPress)网站前端有一个HTML表单,可以显示TinyMCE字段。将tinyMCE内容添加到序列化数组(WordPress)
表单本身完全由WP Admin定制,因此tinyMCE字段的ID /名称可以是任何东西。
当表单提交时,我运行一些jQuery来验证字段(即任何配置为必需的都必须有内容)。如果验证失败,则会显示警报,否则会提交表单。
但是我在使用tinyMCE字段时遇到问题,因为我需要在我的JS文件中获取该字段的内容,然后在我的PHP验证函数中对其进行验证。
对于表单本身,我只是序列化数据。我现在需要做的是将tinyMCE字段的输入ID及其内容添加到该数组中。
var $form = $("#myform");
var formData = $("#myform").serialize();
var mceContent;
var tinymceActive = (typeof tinyMCE != 'undefined') && tinyMCE.activeEditor && ! tinyMCE.activeEditor.isHidden();
if (tinymceActive) {
mceContent = tinyMCE.activeEditor.getContent();
}
所以,我有formData
我的序列化阵列,并mceContent
包含的编辑内容,但我如何才能编辑字段名称,其内容为formData
?我知道我可以用tinymce.editors[0].id
找回编辑的名字,但我不能为我的生活添加{tinymce.editors[0].id : mceContent}
到formData
阵列中。
答
jQuery的序列化功能适用于表单字段表单中的...当它涉及到TinyMCE的编辑器“隐藏”的基本<textarea>
,当你调用serialize()
并通过JavaScript提交表单的<textarea>
是空的。
之前序列化/提交表单,调用像tinyMCE.activeEditor.triggerSave()
或tinyMCE.get('yourEditorId').triggerSave()
- 这将迫使TinyMCE的更新基础<textarea>
的值,使jQuery的序列化功能将正常序列化<textarea>
的价值形式是自然的一部分。
'tinyMCE.activeEditor.triggerSave()'返回一个未知的函数错误,但'tinyMCE.triggerSave()'完成了这项工作。 谢谢! – Mike