删除contenteditable =“true”中的多行文本会添加单个标签

时间:2017-08-08 20:52:24

标签: html contenteditable

我看到很多与div标签相关的问题都有contenteditable属性,但我的问题有点不同。

我不关心点击输入和添加新行是添加cd /foo git init git add --all git commit -m 'Add files' git remote add origin https://my-fake-repo git fetch origin git diff origin/master 还是<div>,但是当我通过按CTRL + A然后按DEL或BACKSPACE清除它来选择所有文本时,它增加了额外的<br>。但是当文本只在一行中时,选择和清除它不会留下任何东西。

如果清除多行文字会增加额外的<br>代码?

,我该如何避免这种情况

1 个答案:

答案 0 :(得分:1)

ContentEditable由浏览器管理,以便在其认为合适时注入格式化标签;所以,如果你想要纯文本,你可能会更好地使用textarea输入。如果这不是一个可行的选项和/或你想要所有其他格式,那么你可以使用javascript或jQuery监听器检查每次击键时的innerHTML,看看它是否包含流氓br标签并消除它。

$("div").on("keyup", function () {
  if (this.innerHTML === "<br>") {
    this.innerHTML = "";
  }
});
相关问题