Я использую CKEditor. Я сохраняю значения формы с помощью ajax, используя методы страницы.
Но содержимое значения CKEditor нельзя сохранить в таблицу.
Я не отсылаю страницу.
Что я могу для этого сделать?
Я использую CKEditor. Я сохраняю значения формы с помощью ajax, используя методы страницы.
Но содержимое значения CKEditor нельзя сохранить в таблицу.
Я не отсылаю страницу.
Что я могу для этого сделать?
Прежде всего, вы должны включить скрипт коннектора ckeditor и jquery на свою страницу,
затем создайте текстовое поле
<textarea name="content" class="editor" id="ms_editor"></textarea>
прикрепите ckeditor к текстовой области, в моем проекте я использую что-то вроде этого:
$('textarea.editor').ckeditor(function() {
}, { toolbar : [
['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
['Undo','Redo'],
['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['Link','Unlink','Anchor', 'Image', 'Smiley'],
['Table','HorizontalRule','SpecialChar'],
['Styles','BGColor']
], toolbarCanCollapse:false, height: '300px', scayt_sLang: 'pt_PT', uiColor : '#EBEBEB' } );
при отправке получить содержимое, используя:
var content = $( 'textarea.editor' ).val();
Вот и все! :)
используйте вызов CKEditor.editor.getData() для экземпляра . То есть:
HTML
<textarea id="my-editor">
<input id="send" type="button" value="Send">
JS для CKEditor 4.0.x
$('#send').click(function() {
var value = CKEDITOR.instances['DOM-ID-HERE'].getData()
// send your ajax request with value
// profit!
});
JS для CKEditor 3.6.x
var editor = CKEDITOR.editor.replace('my-editor');
$('#send').click(function() {
var value = editor.getData();
// send your ajax request with value
// profit!
});
CKEDITOR.instances['DOM-ID-HERE'].getData();
- person Laoujin; 18.03.2013
$('.my-editor-class').val()
См. мой ответ ниже.
- person Benj; 20.08.2015
Если у вас нет ссылки на редактор, как в ответе Эона, вы также можете использовать форму:
var value = CKEDITOR.instances['my-editor'].getData();
var strData = CKEDITOR.instances['editor_'+intCounter].getData();
- на случай, если кому-то еще пригодится.
- person Adam Tomat; 14.02.2013
var value = CKEDITOR.instances['YourInstanceName'].getData()
alert( value);
Замените YourInstanceName
именем вашего экземпляра, и вы получите желаемые результаты.
У меня были проблемы с тем, что getData()
не работал каждый раз, особенно при работе с живым ajax.
Удалось обойти это, запустив:
for(var instanceName in CKEDITOR.instances){
CKEDITOR.instances[instanceName].updateElement();
}
Затем используйте jquery, чтобы получить значение из текстовой области.
Теперь, когда существует адаптер jQuery, этот ответ необходимо обновить:
Допустим, вы запустили редактор с помощью $('.ckeditor').ckeditor(opt)
, тогда вы получите значение с помощью $('.ckeditor').val()
Спасибо Джону Магнолии. Это моя функция postForm, которую я использую в своих проектах Symfony, и теперь можно работать с CK Editor.
function postForm($form, callback)
{
// Get all form values
var values = {};
var fields = {};
for(var instanceName in CKEDITOR.instances){
CKEDITOR.instances[instanceName].updateElement();
}
$.each($form.serializeArray(), function(i, field) {
values[field.name] = field.value;
});
// Throw the form values to the server!
$.ajax({
type : $form.attr('method'),
url : $form.attr('action'),
data : values,
success : function(data) {
callback( data );
}
});
вы можете получить данные следующим образом:
<script>
var data = CKEDITOR.instances.editor1.getData();
// Your code to save "data", usually through Ajax.
</script>
ссылка: http://docs.ckeditor.com/#!/guide/dev_savedata
версия 4.8.0
$('textarea').data('ckeditorInstance').getData();
Чтобы получить данные ckeditor, вам нужно получить экземпляр ckeditor
HTML-код:
<textarea class="form-control" id="reply_mail_msg" name="message" rows="3" data-form-field="Message" placeholder="" autofocus="" style="display: none;"></textarea>
Javascript:
var ck_ed = CKEDITOR.instances.reply_mail_msg.getData();
я добавляю ckEditor, добавляя DLL в toolBox.
html-код:
<CKEditor:CKEditorControl ID="editor1" runat="server"
BasePath="ckeditor" ContentsCss="ckeditor/contents.css"
Height="250px"
TemplatesFiles="ckeditor/themes/default/theme.js" FilebrowserBrowseUrl="ckeditor/plugins/FileManager/index.html"
FilebrowserFlashBrowseUrl="ckeditor/plugins/FileManager/index.html" FilebrowserFlashUploadUrl="ckeditor/plugins/FileManager/index.html"
FilebrowserImageBrowseLinkUrl="ckeditor/plugins/FileManager/index.html" FilebrowserImageBrowseUrl="ckeditor/plugins/FileManager/index.html"
FilebrowserImageUploadUrl="ckeditor/plugins/FileManager/index.html"
FilebrowserUploadUrl="ckeditor/plugins/FileManager/index.html" BackColor="#FF0066"
DialogButtonsOrder="Rtl"
FontNames="B Yekan;B Yekan,tahoma;Arial/Arial, Helvetica, sans-serif; Comic Sans MS/Comic Sans MS, cursive; Courier New/Courier New, Courier, monospace; Georgia/Georgia, serif; Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif; Tahoma/Tahoma, Geneva, sans-serif; Times New Roman/Times New Roman, Times, serif; Trebuchet MS/Trebuchet MS, Helvetica, sans-serif; Verdana/Verdana, Geneva, sans-serif"
ResizeDir="Vertical" ResizeMinHeight="350" UIColor="#CACACA">dhd fdh</CKEditor:CKEditorControl>
для получения данных о нем.
JQuery:
var editor = $('textarea iframe html body').html();
alert(editor);
Я думаю, что будет лучше, просто сериализуйте свою форму с помощью jquery и ура...
<form id="ajxForm">
<!-- input elments here -->
<textarea id="ck-editor" name="ck-editor" required></textarea>
<input name="text" id="text" type="text" required>
<form>
и в разделе javascript
CKEDITOR.replace('ck-editor', {
extraPlugins: 'sourcedialog',
removePlugins: 'sourcearea'
});
$("form#ajxForm").submit(function(e) {
e.preventDefault();
var data = $(this).serialize();
if (data != '') {
$.ajax({
url: 'post.php',
cache: false,
type: 'POST',
data: data,
success: function(e) {
setTimeout(function() {
alert(e);
}, 6500);
}
});
}
return;
});
версия 4.6
CKEDITOR.instances.editor.getData()
Простой способ получить текст внутри редактора или его длину :)
var editorText = CKEDITOR.instances['<%= your_editor.ClientID %>'].getData();
alert(editorText);
var editorTextLength = CKEDITOR.instances['<%= your_editor.ClientID %>'].getData().length;
alert(editorTextLength);
Используя Pure Vanilla Javascript/Jquery или любую библиотеку javascript:
Если у вас загружен Ckeditor в текстовую область ниже:
<textarea name="editor1" id="editor1"></textarea>
Затем вы можете получить содержимое внутри текстовой области, как показано ниже:
var txtNotes = document.getElementsByClassName('ck-content')[0].innerHTML;