将tinyMCE内容添加到序列化数组(WordPress)

时间:2016-09-28 09:24:16

标签: jquery wordpress tinymce

我的(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数组中。

1 个答案:

答案 0 :(得分:1)

jQuery序列化函数适用于表单中的表单字段...当谈到TinyMCE时,编辑器&#34;隐藏&#34;基础<textarea>,当您致电serialize()并通过JavaScript提交表单时,<textarea>为空。

在序列化/提交表单之前,请调用类似tinyMCE.activeEditor.triggerSave()tinyMCE.get('yourEditorId').triggerSave()的内容 - 这将迫使TinyMCE更新基础<textarea>的值,以便jQuery的序列化功能将<textarea>的值正确序列化为表单的自然部分。