我的(WordPress)网站前端有一个HTML表单,有可能显示TinyMCE字段。
表单本身可由WP管理员完全自定义,因此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
数组中。
答案 0 :(得分:1)
jQuery序列化函数适用于表单中的表单字段...当谈到TinyMCE时,编辑器&#34;隐藏&#34;基础<textarea>
,当您致电serialize()
并通过JavaScript提交表单时,<textarea>
为空。
在序列化/提交表单之前,请调用类似tinyMCE.activeEditor.triggerSave()
或tinyMCE.get('yourEditorId').triggerSave()
的内容 - 这将迫使TinyMCE更新基础<textarea>
的值,以便jQuery的序列化功能将<textarea>
的值正确序列化为表单的自然部分。