2011-04-14 117 views
1

我已經爲WordPress 3.1寫了一個管理插件。該插件有一個TinyMCE textarea。我正在使用jQuery Form將表單數據提交到處理頁面。 TinyMCE textarea正確顯示,我可以輸入內容。但是,當我將數據發送到處理頁面時,將發送除TinyMCE textarea的內容以外的所有數據,處理頁面將返回預期結果。如果我再次單擊發送,則會發送TinyMCE日期。這怎麼解決?WordPress TinyMCE不提交內容

這裏是JavaScript:

<script type="text/javascript">  
jQuery(document).ready(function() { 
     var options = { 
      target: '#output', 
      url: '../wp-content/plugins/kac/ajax/send_email_to_list.php' 
     }; 

    jQuery('#form1').ajaxForm(options); 
}); 

function showResponse(responseText, statusText, xhr, $form) { 

    alert('status: ' + statusText + '\n\nresponseText: \n' + responseText + 
     '\n\nThe output div should have already been updated with the responseText.'); 
} 
</script> 

下面是HTML:

<form method="post" id="form1" name="form1"> 
<label for="subject"> 
Subject: 
</label><br /> 
<input name="subject" id="subject" type="text" size="40" maxlength="100" /><br /><br /> 
<?php 
wp_tiny_mce(false , // true makes the editor "teeny" 
    array(
     "editor_selector" => "myeditor" 
    ) 
); 

?> 
<label for="message"> 

Message: 
</label> 
<textarea class="myeditor" id="message" name="message"></textarea><br /><br /> 
<input name="send" id="send" type="submit" value="Send" /> 
</form>  

回答

12

你需要知道TinyMCE的不等於textarea的! Tinymce將隱藏初始化的textarea並創建用戶可以編輯內容的iframe。因此需要調用tinymce保存方法以將iframe內容寫回到textarea。

所以你需要下面的代碼

var editor = tinymce.get(editor_id); 
editor.save(); // writes content back to the textarea 
// you may now use jQuery or editor.getContent(); to acces the content 
+0

感謝。這正是我需要的。 – apadley 2011-04-15 02:14:50