我开始在网站上的所有内容类型中部署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>
答案 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"><p>Hello, World!</p></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();
});