WYMeditor不会将内容反映为textarea值

时间:2009-03-05 15:15:57

标签: javascript jquery 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>

3 个答案:

答案 0 :(得分:12)

我遇到了同样的问题,并且通过查看他们网站提供的wymexamples目录中的示例1,注意到Wymeditor使用特殊元素类(CSS类)来指示页面中需要添加额外行为的部分。

特别是,提交按钮有一个wymupdate类,我认为这会导致预提交处理程序与控件关联。

一旦我将wymupdate类添加到源代码中的提交按钮,然后在提交发生之前使用HTML填写textarea字段,并在正确的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类关联似乎是自动的,但是wymeditor类关联是显式触发的,如<script>所示,然后这必须使它找到类wymupdate的东西。

答案 1 :(得分:4)

而不是:

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

你需要:

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

答案 2 :(得分: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();
});