2013-01-31 49 views
2

我試圖使用Imperavi Redactor控制我的富文本編輯在這裏:Imperavi主編的內容不被複制到隱藏的textarea

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

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

的富文本編輯器出現,並能正常工作,但是當我輸入內容,我可以看到使用谷歌瀏覽器中的檢查元素,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> 

當這樣的textarea什麼的表單POST是可見的服務器很明顯,因爲文本區域是空白。

關於如何將豐富的html複製到textarea的任何建議?我究竟做錯了什麼?

回答

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(); 
}, 
+0

這些是內置的功能呢?我有同樣的問題。我改變的文本是編輯器和隱藏的textarea不反映在Chrome開發工具的變化... –

+0

@Jakobud是的,'''setCode()'''和'''syncCode()'''建立-in方法,請參閱:[syncCode](https://github.com/orloffv/imperavi-redactor/search?utf8=&&=== = syncCode)和[setCode](https://github.com/orloffv/imperavi- redactor/search?utf8 =✓&q = setCode) –

+0

我想我一直在使用舊版本,因爲我更新了它並且工作正常。謝謝。 –