2016-09-28 97 views
0

我在我的(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阵列中。

回答

0

jQuery的序列化功能适用于表单字段表单中的...当它涉及到TinyMCE的编辑器“隐藏”的基本<textarea>,当你调用serialize()并通过JavaScript提交表单的<textarea>是空的。

之前序列化/提交表单,调用像tinyMCE.activeEditor.triggerSave()tinyMCE.get('yourEditorId').triggerSave() - 这将迫使TinyMCE的更新基础<textarea>的值,使jQuery的序列化功能将正常序列化<textarea>的价值形式是自然的一部分。

+0

'tinyMCE.activeEditor.triggerSave()'返回一个未知的函数错误,但'tinyMCE.triggerSave()'完成了这项工作。 谢谢! – Mike