#jquery #wordpress #forms #plugins #tinymce
#jquery #wordpress #формы #Плагины #tinymce
Вопрос:
Я написал плагин администратора для WordPress 3.1. Плагин имеет текстовую область TinyMCE. Я использую форму jQuery для отправки данных формы на страницу обработки. Текстовое поле TinyMCE отображается правильно, и я могу вводить в него содержимое. Однако, когда я отправляю данные на страницу обработки, отправляются все данные, кроме содержимого текстовой области 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 'nnresponseText: n' responseText
'nnThe 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>
Ответ №1:
Вы должны знать, что tinymce не равен текстовой области! Tinymce скроет текстовую область при инициализации и создаст iframe, в котором пользователь может редактировать содержимое. Таким образом, необходимо вызвать метод сохранения tinymce, чтобы записать содержимое iframes обратно в текстовую область.
Итак, вам нужен следующий код
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