django -ckeditor jquery вызов для отображения редактирования в реальном времени - PullRequest
0 голосов
/ 24 апреля 2020

РЕДАКТИРОВАТЬ 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 будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...