javascript - 防止在输入时在 contenteditable div 中添加换行符标签

标签 javascript jquery html css

我有contenteditable div,我想按回车键,添加 new line文字中的字符。

我这样做:

$("#editable").on("keydown", function(e) {
    if (e.keyCode === 13) {
        document.execCommand('insertHTML', false, '\n');
    }
});

这有效,但这也增加了 <br>标签到文本(在 chrome <div> 标签中)

我需要防止在回车时添加这个标签。

我知道两种方式:

1) 使用 preventDefault()方法,但是使用这种方法,用户需要按回车键两次换行。这很糟糕。

2) 使用 replace() 从整个文本中删除此标签方法,但在这种情况下,所有这些标签(如果用户专门输入文本)都将被删除,所以这也是不好的方法。

如何解决这个问题?

最佳答案

试试这个:

$("#editable").on("keydown", function(e) {
      return e.which != 13; 
});

关于javascript - 防止在输入时在 contenteditable div 中添加换行符标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37614356/

相关文章:

javascript - 从 HTML 创建的 DraftJS 编辑器不起作用

javascript - 隐藏显示 div 在基于单独的 div 的两个地方不起作用

javascript - React - 如何将 CSS 样式应用于 iframe 内容

javascript - 是否可以不提及grunt中的所有脚本文件路径?

javascript - 如何将此类基础高阶组件更改为功能组件?

javascript - 响应式网格(高度问题)

jquery - SVG 工具提示隐藏/显示

javascript - 使用 jquery 将 yii2 ajax 请求中的两个参数传递给 Controller

html - 带有实心边框的 CSS 插入边框半径

html - 垂直居中伪元素文本