我的解决方案
我想你可以做这样的事情。
编辑: 更改代码以工作,无论插入位置
代码的第一部分是获得插入符的位置。
function getCaret(el) { if (el.selectionStart) { return el.selectionStart; } else if (document.selection) { el.focus(); var r = document.selection.createRange(); if (r == null) { return 0; } var re = el.createTextRange(), rc = re.duplicate(); re.moveToBookmark(r.getBookmark()); rc.setEndPoint('EndToStart', re); return rc.text.length; } return 0; }然后在
Shift+
Enter在一起时相应地替换textarea值,如果
Enter单独按下则提交表格。
$('textarea').keyup(function (event) { if (event.keyCode == 13) { var content = this.value; var caret = getCaret(this); if(event.shiftKey){ this.value = content.substring(0, caret - 1) + "n" + content.substring(caret, content.length); event.stopPropagation(); } else { this.value = content.substring(0, caret - 1) + content.substring(caret, content.length); $('form').submit(); } }});


