Поле редактора и модальное окно начальной загрузки (на django)

Используя django 1.8.3, bootstrap 3.3.4, jquery 2.1.1 и django-wysiwyg-redactor 0.4.9; Я пытаюсь динамически отображать модальные окна с формой в нем. Форма генерируется ajax-запросом. Чтобы включить редактор в текстовом поле в форме, я просто запускаю .redactor(), и все в порядке.

Если в форме есть ошибки, я должен изменить содержимое .modal-body, и когда я это сделаю, я снова запускаю .redactor(), но в некоторых полях панель инструментов видна, а в других не видна или видна, но неуместна в текстовая область. (внизу или в середине текстового поля)

Я пытался до сих пор и без какого-либо успеха:

  • .redactor('core.destroy') и затем redactor()
  • обновить (скрыть() и показать()) панель инструментов для каждого текстового поля

есть идеи?


person Karim N Gorjux    schedule 14.09.2015    source источник


Ответы (1)


Проблема не в редакторе, а в модальном. Я не знаю, является ли версия бутстрапа, но на данный момент я решил так:

Я создаю пару функций для включения и отключения полей редактора. В модальном окне, если ajax получает ошибку, я делаю:

// maybe is not necessary buy I prefer to disable the fields
disableRedactor(fields);

// fill the response in the modal
$(modal).find('.modal-body').html(response);

// scroll the modal to the top
$(modal).scrollTop(0);

// enable the new fields
enableRedactor($('#consultant-form textarea'));

Функция включения полей редактора:

var enableRedactor = function(fields){
    _.each($(fields), function(field){
        $(field).redactor();
    });
};

var disableRedactor = function(fields){
    _.each($(fields), function(field){
        $(field).redactor('core.destroy');
    });
};
person Karim N Gorjux    schedule 15.09.2015