2

我在这里尝试使用Imperavi Redactor控件进行富文本编辑:

<div class="control-group">
  <%= f.label :description %>
  <div class="controls">
    <%= f.text_area :description, :class => "richtext" %>
  </div>
</div>

$(document).ready(function(){
    $('.richtext').redactor();
});

富文本编辑器出现并且工作正常,但是当我输入内容时,我可以使用 Google Chrome 中的检查元素看到 html 标记没有被复制到隐藏的文本区域。看:

<div class="controls">
    //Removed toolbar for brevity.
    <div class="redactor_box">
        <div class="redactor_richtext redactor_editor" contenteditable="true" dir="ltr"><p>asdfjoiasjdf</p><p>dfjiasdfjiasd</p><p>idsfj</p><p>asdffaas</p></div>
    </div>

    <textarea class="richtext" cols="40" id="program_description" name="program[description]" rows="20" style="display: none;"></textarea></div>
</div>

当对此文本区域进行表单 POST 时,服务器显然看不到任何内容,因为文本区域是空白的。

关于如何将丰富的 html 复制到 textarea 的任何建议?我究竟做错了什么?

4

1 回答 1

3

尝试内置功能$().syncCode()

syncCode: function()
{
    var html = this.formatting(this.$editor.html());
    this.$el.val(html);         
}

或者$().setCode()

setCode: function(html)
{
    html = this.preformater(html);

    this.$editor.html(html).focus();

    this.syncCode();
},
于 2013-02-04T00:10:58.997 回答