2016-11-30 235 views
0

我在接受用户输入并将其插入数据库的textarea上使用tinymce插件。如何防止添加额外的空行tinymce

html页面:

​​

脚本初始化TinyMCE的:

initTinyMCE('#content'); 
function initTinyMCE(querySelector) { 
    tinymce.init({ 
     selector:querySelector, 
     plugins: [ 
      "advlist autolink lists link image charmap print preview anchor", 
      "searchreplace visualblocks code fullscreen", 
      "insertdatetime media table contextmenu paste jbimages preview emoticons media", 
      "textcolor placeholder" 
      ], 
     toolbar: "bold italic underline strikethrough backcolor emoticons autoresize | bullist numlist outdent indent | insertfile | alignleft aligncenter alignright alignjustify | link media image jbimages undo redo preview", 
     menubar:false, 
     paste_data_images: true, 
     relative_urls: false, 
     height : "420", 
     paste_word_valid_elements: "b,strong,i,em,h1,h2,u,p,ol,ul,li,a[href],span,color,mark", 
     relative_urls : false, 
     media_dimensions: false, 
     media_poster: false, 
     content_css: "/assets/css/bootstrap.min.css", 
     setup: function (editor) { 
      editor.on('change', function() { 
       tinymce.triggerSave(); 
      }); 
     } 
    }); 
} 

控制器:

$data['content'] = trim($this->input->post('content', TRUE)); 
$this->db->insert('mytable', $data); 

的问题是,有这么被插入到数据库中的额外<p>&nbsp;</p>。因为我已经在插入数据库之前修改了变量,我相信tinymce会自动为输入添加一个空行。我如何摆脱那多余的空行?我真的必须使用正则表达式来手动删除它吗?

我想到了一个插件被广泛使用和旧如TinyMCE的应该有一个设置或配置来做到这一点,不是吗?

+0

你在这里有答案:)只是更新初始化;) http://stackoverflow.com/a/13842115/1529532 –

+1

可能重复[tinymce自动添加p标签?](http://stackoverflow.com/questions/13841986/TinyMCE的-加入对 - 标签 - 自动地) – mabe02

回答

0

我打算假设你(一般情况下)希望你的HTML有像<p>这样的标签,你只是不希望这个“额外”的空段在最后?

如果让我怀疑你看到的是有人按下回车键移动到新行,但在提交表单前不打字上最后一行事情。

当您按Enter键移动到新行时,编辑器将创建一个新的“块元素”(通常为<p>)并且光标位于此元素内,然后当您键入该内容时,该块元素将进入该块元素。

修剪内容将无济于事,因为问题不是空白而是“空白”段落。

如果您特别想要在内容末尾修剪任何空的段落,您可以在提交内容时以及在保存内容之前这样做,但不能阻止某人按下回车键然后提交内容然后输入最后一个块元素。