2015-04-21 6 views
0

У меня возникла проблема при загрузке второго и следующего виджета ckeditor в интерфейсной форме в html. Он хорошо работает в админ. Когда я щелкаю добавление большего количества форм, динамически, виджет не появляется, но вместо него отображается textarea, он просто работает в первой (инициализированной) форме. Я уже следую документации поэтапно для основных требований. Я использую Django с пакетом django-ckeditor. На странице не было ошибок на JavaScript.Django-CKEditor Widget не загружается динамически

Извините, что не показывал никаких кодов раньше. Это является частью JavaScript, который динамически добавляя другую форму набора после того, как кнопка нажата:

<script src="//cdn.ckeditor.com/4.4.5/standard/ckeditor.js"></script> 
<script type="text/javascript" src="ckeditor/ckeditor-init.js"></script> 

$('#add_more_work').click(function(){ 
var form_idx = $('#id_form_set-TOTAL_FORMS').val(); 
$('#form_set_work').append($('#empty_form_work').html().replace(/__prefix__/g, form_idx)); 
$('#id_form_set-TOTAL_FORMS').val(parseInt(form_idx) + 1);}); 

поле, которое используют CKEditor виджет не загружается после того, как он добавлен динамически с помощью этой кнопки, но вместо этого он показывает простую текстовую область. Я что-то пропустил?

+0

Вы можете разместить изображение или какой-либо соответствующий код, я действительно не понял, что вы подразумеваете под вторым и следующим виджетами ckeditor. – HassenPy

+0

Спасибо, я только что сделал это выше. То, что я подразумевал под вторым и следующим виджетами, - это когда я добавляю элемент формы, который использует виджет ckeditor, динамически. –

+1

CKEditor не привязывается автоматически к динамически созданным элементам. –

ответ

1

Возможно, вы захотите ознакомиться с использованием formset:added and formset:removed JavaScript signals, доступного с Django 1.9 и далее.

Простой метод (в сочетании с django-content-editor и feincms3) может выглядеть следующим образом:

(function($) { 
    $(document).on('formset:added', function newForm(event, row) { 
    row.find('textarea').each(function() { 
     CKEDITOR.replace(this.id); 
    }); 
    }); 
})(django.jQuery); 

Я оставлю обработку formset:removed читателю.

Смежные вопросы