将 tinyMCE 内容添加到序列化数组 (WordPress)
Adding tinyMCE content to serialized array (WordPress)
我的 (WordPress) 网站前端有一个 HTML 表单,它可以显示 TinyMCE 字段。
表单本身可由 WP 管理员完全自定义,因此 tinyMCE 字段的 ID/name 可以是任何内容。
提交表单后,我运行一些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 时,编辑器 "hides" 底层 <textarea>
以及当您调用 serialize()
并通过 JavaScript 提交表格 <textarea>
为空。
在 serializing/submitting 表单之前,调用类似 tinyMCE.activeEditor.triggerSave()
或 tinyMCE.get('yourEditorId').triggerSave()
- 这将强制 TinyMCE 更新基础 <textarea>
的值,以便 jQuery 的序列化函数将正确地将 <textarea>
的值序列化为表单的自然部分。
我的 (WordPress) 网站前端有一个 HTML 表单,它可以显示 TinyMCE 字段。
表单本身可由 WP 管理员完全自定义,因此 tinyMCE 字段的 ID/name 可以是任何内容。
提交表单后,我运行一些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 时,编辑器 "hides" 底层 <textarea>
以及当您调用 serialize()
并通过 JavaScript 提交表格 <textarea>
为空。
在 serializing/submitting 表单之前,调用类似 tinyMCE.activeEditor.triggerSave()
或 tinyMCE.get('yourEditorId').triggerSave()
- 这将强制 TinyMCE 更新基础 <textarea>
的值,以便 jQuery 的序列化函数将正确地将 <textarea>
的值序列化为表单的自然部分。