9

私はWYMeditorをサイトのすべてのコンテンツタイプに展開し始めましたが、見栄えがしました。これで、保存と表示がどのように機能するかを確認できましたが、何も送信されておらず、理由がわかりません。

私はこれをいくつかの角度から見てきました。この時点でモンキーパッチをとることもあります。自分でデータを取得する方法を学ぶことができれば、提出時にフィールドに貼り付けることができます。それまたはそれ自体が機能しない本当の理由は素晴らしいでしょう。アイデアを持っている人はいますか?

<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>
4

3 に答える 3

12

同じ問題があり、サイトから提供されたwymexamplesディレクトリの例1を見ると、Wymeditorが特別な要素クラス(CSSクラス)を使用して、追加の動作を追加する必要があるページの部分を示していることに気付きました。

特に、送信ボタンには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クラスのものを検索する必要があります。

于 2009-04-16T06:01:06.407 に答える
4

これの代わりに:

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

必要なもの:

"updateEvent":"click",    
"updateSelector":"[type=submit]"
于 2011-04-16T23:16:37.790 に答える
0

また、すべての wymeditors を強制的に更新することもできます。これは、テキストエリアのコンテンツを操作するカスタム機能があったため、実際の送信の前に行う必要がありました。

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();
});
于 2012-06-02T13:39:48.170 に答える