这是示例http://jsfiddle.net/omuL8doa/3/

如果按Enter,则jquery将在当前位置插入<br/>。还行吧。

但是在输入I之后(光标)转到文本的末尾。但是我需要将光标保持在“当前”位置(如果我在Word或记事本中输入,则行为相同。我的意思是,按Enter键,在下面移一行并保持在那里。

需要修改什么代码?

这是代码

$('textarea').keydown(function(ev){
if(ev.keyCode == 13){
var caretPos = document.getElementById("main_text").selectionStart;
var textAreaTxt = jQuery("#main_text").val();
var txtToAdd = "<br/>";
jQuery("#main_text").val(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring(caretPos) );
}
});

最佳答案

DEMO

$('textarea').keydown(function(ev){
    if(ev.keyCode == 13){
        ev.preventDefault(); //added
        var caretPos = this.selectionStart;
        var textAreaTxt = this.value;
        var txtToAdd = "\n"; //changed
        $(this).val(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring(caretPos) );
        var sePos = caretPos + txtToAdd.length //add
        this.setSelectionRange(sePos,sePos); //added
    }
});

08-19 02:38