我在这个项目中使用WYMediator。但是,我有服务器端验证,在保存数据之前,它会检查文本区域框是否为非空。但是当使用WYMediator时,它插入了一个<br />
标记,尽管我甚至还没有在编辑器中点击那么多。
我搜索了一下这个问题,发现它在这里被标记为bug。但据说它是固定的。然而,尽管我已经下载并使用了最新的稳定版本,但它肯定仍然影响着我。
这是我插入文本区域的代码(我使用的是CakePHP):
echo $this->Form->create('News', array('type' => 'file'));
echo $this->Form->input('News.title', array('label' => '*Title:'));
echo $this->Form->input('News.body', array('label' => '*Body:', 'class' => 'wymeditor'));
echo $this->Form->input('News.picture', array('label' => 'Picture:', 'type' => 'file'));
echo $this->Form->end(array('label' => 'Save News', 'class' => 'wymupdate'));
我的文本区域javascript:
jQuery('.wymeditor').wymeditor({
skin: 'silver',
toolsItems: [
{'name': 'Bold', 'title': 'Strong', 'css': 'wym_tools_strong'},
{'name': 'Italic', 'title': 'Emphasis', 'css': 'wym_tools_emphasis'},
{'name': 'CreateLink', 'title': 'Link', 'css': 'wym_tools_link'},
{'name': 'Unlink', 'title': 'Unlink', 'css': 'wym_tools_unlink'},
{'name': 'InsertOrderedList', 'title': 'Ordered_List', 'css': 'wym_tools_ordered_list'},
{'name': 'InsertUnorderedList', 'title': 'Unordered_List', 'css': 'wym_tools_unordered_list'},
{'name': 'InsertTable', 'title': 'Table', 'css': 'wym_tools_table'},
{'name': 'Undo', 'title': 'Undo', 'css': 'wym_tools_undo'},
{'name': 'Redo', 'title': 'Redo', 'css': 'wym_tools_redo'}
]
});
我没有使用wymeditor javascript,而是使用我的所有其他javascript进行了测试,它的功能正如预期的那样,所以我怀疑wymeditorjavascript发生了什么,但我不确定是什么。
我能想到这些症状的几个可能原因:
-
您可能正在使用旧版本的WYMediator,其中存在此错误。您正在使用哪个版本?截至本文撰写之时,当前版本为1.0.0b3。你可以在这里测试WYMediator大师。
-
如果您在不使用表单的提交处理程序的情况下提交表单,那么
wymupdate
类将不起作用,也不会得到隐式的wym.xhtml()
调用,这意味着可能不会进行一些必要的HTML清理。您可以尝试在您的WYMediator实例上调用xhtml()
(如果您只有一个Wymediator,则可以使用jQuery.wymeditors(0)
检索它)。
如果你能提供一个示例页面,或者更多的信息,我会相应地更新这个答案。