【发布时间】:2015-02-01 19:10:44
【问题描述】:
这是HTML代码:
<div id="messageBox" contenteditable="true" class="message"></div>
这是 jquery:
$('#messageBox').keydown(function(e) {
if (e.ctrlKey && e.keyCode == 13)
{
$(this).html($(this).html() + "<br>");
}
}).keypress(function(e) {
if(e.keyCode == 13)
{
$('#send').trigger('click');
return false;
}
});
我想按 Ctrl+Enter 创建一个新行,但它不起作用。光标没有移动。
JS FIDDLE
【问题讨论】:
-
那是因为
<br>后面什么都没有。它被插入,但浏览器不显示它。您可以通过将"<br>"更改为"<br>foo"来验证这一点。 -
它对我来说工作正常,刚刚在 Chrome 和 Firefox 中尝试过你的小提琴
-
光标不动。
-
更改元素的整个 HTML 有点粗鲁。您可以在 contenteditable 中的任何位置使用 Range 对象来add a new-line。
标签: javascript jquery html