2009-03-05 19 views
9

我開始在網站上的所有內容類型中部署WYMeditor,並且它看起來不錯。現在我看到它是如何工作保存和查看,但它沒有提交任何內容,我不知道爲什麼。WYMeditor不會將內容反映到文本區域值

我從幾個角度看過這個。我甚至會在這一點上拿一個monkeypatch,如果我能夠學習如何自己獲取數據,我可以在提交時將其粘貼到現場。這或它自己不工作的真正原因會很好。任何有想法的人?

<li><label for="id_comment">comment on this article:</label> <textarea id="id_comment" rows="10" cols="40" name="comment"></textarea> 
<script type="text/javascript"> 
    $(document).ready(function(){ 

    jQuery("#id_comment").wymeditor({ 
     "toolsItems":[ 
     { 
      "name":"Bold", 
      "css":"wym_tools_strong", 
      "title":"Strong" 
     }, 
     { 
      "name":"Italic", 
      "css":"wym_tools_emphasis", 
      "title":"Emphasis" 
     }, 
     { 
      "name":"InsertOrderedList", 
      "css":"wym_tools_ordered_list", 
      "title":"Ordered_List" 
     }, 
     { 
      "name":"InsertUnorderedList", 
      "css":"wym_tools_unordered_list", 
      "title":"Unordered_List" 
     }, 
     { 
      "name":"Indent", 
      "css":"wym_tools_indent", 
      "title":"Indent" 
     }, 
     { 
      "name":"Outdent", 
      "css":"wym_tools_outdent", 
      "title":"Outdent" 
     }, 
     { 
      "name":"Undo", 
      "css":"wym_tools_undo", 
      "title":"Undo" 
     }, 
     { 
      "name":"Redo", 
      "css":"wym_tools_redo", 
      "title":"Redo" 
     }, 
     { 
      "name":"CreateLink", 
      "css":"wym_tools_link", 
      "title":"Link" 
     }, 
     { 
      "name":"Unlink", 
      "css":"wym_tools_unlink", 
      "title":"Unlink" 
     }, 
     { 
      "name":"Paste", 
      "css":"wym_tools_paste", 
      "title":"Paste_From_Word" 
     } 
     ], 
     "logoHtml":"", 
     "updateEvent":"blur", 
     "stylesheet":"/static/yui/tiny_mce.css", 
     "skin":"twopanels", 
     "classesHtml":"", 
     "updateSelector":"textarea" 
     }); 

    }); 
</script></li> 

回答

12

我有同樣的問題,並從看着例1中的Wymeditor使用特殊元素類(CSS類),從他們的網站提供的wymexamples目錄注意到指示頁面這就需要有多餘的零件行爲添加到他們。

特別是,提交按鈕有一個wymupdate類,我認爲這會導致預先提交處理程序與控件關聯。

一旦我將wymupdate類添加到源代碼中的提交按鈕中,那麼textarea字段在提交之前用HTML填充,並且它在正確的POST變量中顯示了服務器端。

我包括示例源,這使得它的工作中的相關位下方...

<script type="text/javascript"> 
jQuery(function() { 
    jQuery('.wymeditor').wymeditor(); 
}); 
</script> 

...

<form method="post" action=""> 
<textarea class="wymeditor">&lt;p&gt;Hello, World!&lt;/p&gt;</textarea> 
<input type="submit" class="wymupdate" /> 
</form> 

...雖然wymupdate類的關聯似乎是AUTOMAGIC ,wymeditor類關聯被明確觸發,如<script>所示,然後這必須使它尋找類wymupdate的東西。

+0

不幸的是,這不是我遇到的問題。這並不是原始textarea在提交(它確實)時獲得正確內容的問題,但是當啓用html-編輯模式時,它將顯示raw-html textarea和WYMeditor的富文本編輯字段,然後編輯一個不會改變其他。 – ironfroggy 2009-04-19 15:07:55

+0

沒錯,WYMeditor沒有反映沒有wymupdate類的變化回textarea。 – 2010-07-20 03:59:24

4

取而代之的是:

"updateEvent":"blur", 
"updateSelector":"textarea" 

你需要:

"updateEvent":"click",  
"updateSelector":"[type=submit]" 
0

您還可以強制更新所有wymeditors,這是我需要做之前,實際提交,因爲我有這樣的操作自定義功能textarea內容。

document.addEventListener('submit',function(e){ 
    e.preventDefault(); 
    //update all the wymeditors 
    var i=0,wym = jQuery.wymeditors(i); 
    while(wym){ 
     i++; 
     wym._element.html(wym.xhtml()); 
     //wym.update();//would use this, but it is not reliable 
     wym = jQuery.wymeditors(i); 
    } 
    e.target.submit(); 
});