Redactor字段和bootstrap的模态窗口(在django上)

时间:2015-09-14 18:53:40

标签: jquery django twitter-bootstrap redactor

使用django 1.8.3,bootstrap 3.3.4,jquery 2.1.1和django-wysiwyg-redactor 0.4.9;我试图动态渲染一个带有表单的模态窗口。表单由ajax请求生成。要在表单中的textarea字段上启用redactor,我只需运行.redactor(),一切都很好。

如果表单有错误,我必须更改.modal-body内容,当我这样做时,我再次运行.redactor()但在某些字段中工具栏是可见的,而在其他字段中是不可见或可见但在textarea错位。 (在textarea的底部或中间)

我到目前为止尝试过但没有任何成功:

  • .redactor(' core.destroy')和redactor()
  • 刷新(hide()和show())每个文本域的工具栏

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题不在于编辑器,而在模态中。我不知道是否是bootstrap的版本,但此刻我以这种方式解决了:

我创建了几个函数来启用和禁用redactor字段。在模态窗口中,如果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');
    });
};