2016-09-28 79 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