Javascript 威梅迪托赢得';t将内容反映到文本区域值中

Javascript 威梅迪托赢得';t将内容反映到文本区域值中,javascript,jquery,wymeditor,Javascript,Jquery,Wymeditor,我开始在网站上的所有内容类型中部署WYMeditor,它看起来不错。现在我看到它是如何工作的保存和查看,但它没有提交任何东西,我不知道为什么 我已经从几个角度看了这个问题。在这一点上,我甚至会使用monkeypatch,如果我能学会如何自己获取数据,我可以在提交时将其粘贴到字段中。这或其自身不起作用的真正原因将是巨大的。有人有想法吗 <li><label for="id_comment">comment on this article:</label> <

我开始在网站上的所有内容类型中部署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>
  • 对本文的评论: $(文档).ready(函数(){ jQuery(“#id_comment”).wymeditor({ “工具站点”:[ { “名称”:“粗体”, “css”:“wym_tools_strong”, “标题”:“强” }, { “名称”:“斜体”, “css”:“wym_工具强调”, “标题”:“强调” }, { “名称”:“InsertOrderedList”, “css”:“wym_工具_有序列表”, “标题”:“有序列表” }, { “名称”:“InsertunderedList”, “css”:“wym工具无序列表”, “标题”:“无序列表” }, { “名称”:“缩进”, “css”:“wym_工具缩进”, “标题”:“缩进” }, { “名称”:“Outdent”, “css”:“wym_tools_outdent”, “标题”:“Outdent” }, { “名称”:“撤消”, “css”:“wym_工具_撤销”, “标题”:“撤消” }, { “名称”:“重做”, “css”:“wym_工具_重做”, “标题”:“重做” }, { “名称”:“CreateLink”, “css”:“wym_工具_链接”, “标题”:“链接” }, { “名称”:“取消链接”, “css”:“wym_工具_取消链接”, “标题”:“取消链接” }, { “名称”:“粘贴”, “css”:“wym_工具_粘贴”, “标题”:“从单词粘贴” } ], “logoHtml”:“, “updateEvent”:“blur”, “样式表”:“/static/yui/tiny_mce.css”, “皮肤”:“两个面板”, “classesHtml”:“, “更新选择器”:“文本区域” }); });

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

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

    一旦我将wymupdate类添加到源代码中的submit按钮中,textarea字段就会在提交之前用HTML填充,并显示在服务器端的正确POST变量中

    我在下面包含了示例源中的相关位,这些位使它能够工作

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

    
    菲罗,世界/P
    
    …尽管wymupdate类关联似乎是automagic,但wymeditor类关联会被显式触发,如
    中所示,这必须导致它查找wymupdate类的内容

    而不是这个:

    "updateEvent":"blur",
    "updateSelector":"textarea"
    
    你需要:

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

    您还可以强制更新所有WyMediators,这是我在实际提交之前需要做的,因为我有自定义功能来操作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();
    });
    

    不幸的是,这不是我遇到的问题。这不是我提交时原始文本区域获得正确内容的问题(确实如此),而是当我启用html编辑模式,然后显示原始html文本区域和WYMeditor的富文本编辑字段时,编辑一个不会改变另一个。没错,没有wymupdate类,WYMeditor不会将更改反映回textarea。这是正确的。我用
    updateSelector:'form'
    updateEvent:'submit
    使它变得更加通用。看起来很有效。
    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();
    });