每次在textarea中按Enter键时,如何添加“•”。我一直在寻找它的代码。但我似乎无法找到它。或者在按下回车键后,如果我输入了一个单词,那么这是唯一一次在单词之前添加“•”。请帮助。
答案 0 :(得分:3)
$('textarea').on('keydown',function(e){
var t = $(this);
switch(e.which){
case 13:
t.val(t.val()+'•');
return false;
}
});
答案 1 :(得分:2)
你可能想要这样的内容:
$(function() {
$('#List').keyup(function (event) {
if (event.keyCode == 13) { // If enter is pressed.
var content = this.value;
var sel = getInputSelection(this);
var caret = getCaret(this);
var bullet = "• ";
this.value = content.substring(0,caret) +
bullet +
content.substring(caret,content.length);
setInputSelection(
this,
sel.start + bullet.length,
sel.end + bullet.length
);
event.stopPropagation();
}
});
});
getCaret()
功能从this SO answer被盗,getInputSelection()
和setInputSelection()
功能从this one被盗。
完全(有点凌乱)JSFiddle here。
这样做的好处就是更像文本编辑器。如果您的光标不在textarea的末尾并按Enter键,您希望子弹出现在光标处,而不仅仅是添加到textarea的末尾。
修改强>
添加光标位置重置。
答案 2 :(得分:1)
听起来你想制作一个项目符号列表,用线条作为前缀(•)
var linestart = function(txt, st) {
var ls = txt.split("\n");
var i = ls.length-1;
ls[i] = st+ls[i];
return ls.join("\n");
};
$('textarea').on('keydown', function(e) {
var t = $(this);
if(e.which == 13) {
t.val(linestart(t.val(), '•') + "\n");
return false;
}
});