这是示例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) );
}
});
最佳答案
$('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
}
});