防止contentEditable DIV上的换行符

时间:2013-05-23 07:10:31

标签: jquery contenteditable line-breaks

我有一个contentEditable DIV,我需要阻止在Enter键上插入换行符,并且只允许按Shift + Enter

我试过了:

$(".element").on('keydown', function(e) {
    if (e.keyCode == 13 && !e.shiftKey){
        e.preventDefault();
    }
});

但是不起作用。它仅适用于Textarea ..

有办法吗?

修改:我已经在jsFiddle上尝试了它,它正在运行,但在我正在处理的页面上没有。

这是DOM生成的contentEditable DIV:

<div class="wysibb-body" contentEditable="true"></div>

取消alert()我得到它,但在关闭之后,插入了换行符。

$(".wysibb-body").on('keydown', function(e) {
    if (e.keyCode == 13 && !e.shiftKey){
        //alert('Enter pressed');
        e.preventDefault();
    }
});

2 个答案:

答案 0 :(得分:5)

我一直在尝试这个代码,它的作品是:

$(document).ready(function(e){
     $(".wysibb-body").keydown(function(e) {
         if (e.keyCode == 13 && e.shiftKey){
              alert('Enter + shift pressed');

         } else if(e.keyCode == 13){
              e.preventDefault();
         }
    });
});

经过测试的en chrome,firefox,safari,opera,IE 8和完美的

答案 1 :(得分:0)

找出原因无效。

DIV是由jQuery插件生成的。调查一下,我发现已经有一个事件要在输入keyPress上插入<br>