我有一个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();
}
});
答案 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>
。