我为WordPress 3.1编写了一个管理插件。该插件有一个TinyMCE textarea。我正在使用jQuery Form将表单数据提交到处理页面。 TinyMCE textarea正确显示,我可以在其中键入内容。但是,当我将数据发送到处理页面时,将发送除TinyMCE文本区域内容之外的所有数据,并且处理页面返回预期结果。如果我再次点击发送,则会发送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>
答案 0 :(得分:12)
你需要知道,tinymce不等于textarea! Tinymce将在初始化时隐藏textarea并创建一个用户可以编辑内容的iframe。因此,需要调用tinymce save方法将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