РЕДАКТИРОВАТЬ 2: Я решил потянуть текст. Он не будет обновляться для таких вещей, как копирование и вставка для ключевого события, но он становится ближе. Мой текстовый вывод не HTML, поэтому я собираюсь поработать над сохранением формата, чтобы хотя бы получить простой текст.
// project.js
var textInput = CKEDITOR.instances.id_text;
function setText(value) {
$('#preview-text').text(value) // my preview span
}
setText(textInput)
textInput.on('key', function () {
var newText = textInput.getData();
setText(newText)
})
РЕДАКТИРОВАТЬ: я решил вызвать экземпляр.
// project.js
var textInput = CKEDITOR.instances.id_text.getData(); // new var works for instance
function setText(value) {
$('#preview-text').text(value)
}
setText(textInput)
textInput.keyup(function () { // this still states keyup is not a function
var newText = $(this).val()
setText(newText)
})
Теперь я решаю проблему TypeError: textInput.keyup is not a function
теперь, когда решена CKEDITOR.instance
.
Я создаю приложение django, которое использует RichTextField
из django-ckeditor
. Я показываю, как будет выглядеть форма после отправки, используя jQuery для моих полей ввода. При переходе с TextField
на RichTextField
моя jQuery перестала работать.
// project.js
// old keyup function for TextField
var textInput = $('#id_text');
function setText(value) {
$('#preview-text').text(value)
}
setText(textInput.val())
textInput.keyup(function () {
var newText = $(this).val()
setText(newText)
})
Я пытался это сделать:
// project.js
// new jQuery function
var textInput = CKEDITOR.instances['id_text'].getData();
function setText(value) {
$('#preview-text').text(value)
}
setText(textInput) // removed .val() as this caused a TypeError: textInput.val is not a function
textInput.keyup(function () {
var newText = $(this).val()
setText(newText)
})
Это дает мне TypeError: textInput.keyup is not a function
. Я хотел бы продолжить использовать функцию .keyup()
в качестве приглашения для обновления параллельного предварительного просмотра, но, похоже, его нужно будет переработать.
// project.js
var textInput = $('textarea#id_text'); // specifying textarea yields [object Object] in HTML
function setText(value) {
$('#preview-text').text(value)
}
setText(textInput)
textInput.keyup(function () {
var newText = $(this).val()
setText(newText)
})
Вышеприведенная функция возвращает [object Object ] в <span id='preview-text'></span>
.
Предыдущий пост, который я использовал для CKEDITOR.instance[].getData()
звонка здесь .
Любое понимание того, как я могу реорганизовать jQuery .keyup()
с django-ckeditor
будет принята с благодарностью.