2010-10-27 41 views
10

我不确定为什么,但是如果您有一个启用了contenteditable的元素,当您第一次输入空格时,它会在元素中附加<br>标记。如果元素在默认情况下(<p contenteditable="true">this is a test</p>)中有一个空间,它会被罚款,但只要用户点击该空格键(或者甚至复制粘贴+空格字符),火狐增加了<br _moz_dirty="" /><p>Contenteditable在我点击空间时添加了一个<br>

有没有人有任何理由想法或一个简单的解决?这是我第一次玩contenteditable,所以很多这对我来说都是新的。目前,我只是使用$('br').remove()这似乎工作,但我很乐意解释和正确的方法来防止它,如果有人知道。

+0

这仍然是重现?我从来没有遇到过这样的错误在FF – YakovL 2016-07-30 14:34:34

+0

我得到了同样的问题,http://jsbin.com/xarirotali/edit?html,css,output 按两个“一些文本”结束空间和检查p元素在FF中,它将添加一个
。 – 2016-11-01 13:36:48

回答

0

我使用preventDefault当用户进行回车。也许您可以修改它以在用户使用空格键时返回正常空间。

 if(e.keyCode==13 && e.shiftKey){ //enter && shift 
      e.preventDefault(); //Prevent default browser behavior 
      //this.html(this.html+"<br>"); 
     } 
     if(e.keyCode==13){ //enter 
      e.preventDefault(); //Prevent default browser behavior 
     } 
+0

这为我工作。 – Veera 2012-11-18 11:43:20

+0

我试过这个方法,但是Chrome给了我这个错误:'未捕获的ReferenceError:e没有被定义'。你知道为什么吗? – 2013-02-01 02:32:37

+0

您无法阻止Firefox将
附加到e.preventDefault() – 2014-12-07 20:48:04

相关问题