我正在为此项目使用WYMeditor。但是,我有服务器端验证,可以在保存数据之前检查textarea框是否为非空。但是,当使用WYMeditor时,即使我在编辑器中单击并没有做太多事情,它也会插入<br />标记。

我四处搜寻有关此问题的信息,发现它被标记为错误here。但是据说它是固定的。但是,即使我已经下载并正在使用最新的稳定版本,它肯定仍会影响我。

这是我插入文本区域的代码(我正在使用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的textarea:

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进行了测试,但是未使用wymeditor javascript进行测试,并且它按预期运行,因此我怀疑wymeditor javascript正在进行某些事情,但是我不确定是什么。

最佳答案

我可以想到这些症状的一些可能原因:


您可能正在使用存在此错误的WYMeditor的旧版本。您正在使用哪个版本?撰写本文时,当前版本为1.0.0b3。您可以针对WYMeditor主服务器here进行测试。
如果您在不使用表单的提交处理程序的情况下提交表单,则wymupdate类将不起作用,并且不会得到隐式的wym.xhtml()调用,这意味着可能不会进行必要的HTML清理。您可以尝试在WYMeditor实例上调用xhtml()(如果只有一个wymeditor,则可以使用jQuery.wymeditors(0)进行检索)。


如果您可以提供示例页面或更多信息,我将相应地更新此答案。

09-27 10:40