我目前有一个有效的系统。我想在用户点击进入时添加<br />
。
目前它的工作方式是获取textarea的当前内容,将<br />
附加到其上,然后输出整个批次。所以这样可行,但只将<br />
添加到内容的末尾。
$("#postcontent").keypress(function(e) {
// If enter key pressed
if(e.which == 13) {
var currentHTML = document.getElementById("postcontent").value;
var currentHTML = currentHTML + "\n<br /><br />"
document.getElementById("postcontent").value = currentHTML;
}
});
Here's a JSfiddle以上的行动
我知道当前的解决方案无法在当前光标位置添加<br />
标记。
我在想这样的事,但不知道如何处理它。
$("#postcontent").keypress(function(e) {
// If enter key pressed
if(e.which == 13) {
// Find the location of the cursor
// Grab all the content BEFORE the cursor and store in var contentBefore
// Grab all the content AFTER the cursor and store in var contentAfter
document.getElementById("postcontent").value = contentBefore + "<br /><br />" + contentAfter;
}
});
不确定我是否会采用完全错误的方式,所以请随意提供替代解决方案或帮我解决上面伪代码的部分内容?
答案 0 :(得分:1)
这里的jQuery方式:
$(document).ready(function(){
$("#postcontent").keypress(function(e) {
if(e.which == 13) {
//var currentHTML = document.getElementById("postcontent").value;
//var currentHTML = currentHTML + "\n<br /><br />"
//document.getElementById("postcontent").value = currentHTML;
var cursorPos = $('#postcontent').prop('selectionStart'),
v = $('#postcontent').val(),
textBefore = v.substring(0, cursorPos ),
textAfter = v.substring( cursorPos, v.length );
$('#postcontent').val( textBefore+ "<br />" +textAfter );
}
});
});
答案 1 :(得分:0)