我试图在输入命中时动态地将文本添加到textarea。
$(document).ready(function () {
$('#content').on("keydown", function (e) {
if (e.keyCode == 13) {
$('textarea').append("Hello");
}
})
});
这是运行的代码,它只添加一次文本(页面加载后第一次),然后没有。可能导致这种情况的原因是什么?
答案 0 :(得分:1)
尝试
$(document).ready(function () {
$('textarea').on("keydown", function (e) {
if (e.keyCode == 13) {
this.value+= 'Hello';
}
})
});
该事件在textarea本身注册,新内容被添加到textarea值。
答案 1 :(得分:0)
将文字添加到textarea
如果要在文本区域的现有内容中向任何地方添加文字,可以使用此功能。只需点击你想要插入文本的地方,在你的情况下点击回车。但您可以将它用于任何您喜欢的事件(例如按钮点击)。
function insertText(inputId, text) {
var txtarea = document.getElementById(inputId);
var scrollPos = txtarea.scrollTop;
var strPos = 0;
var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ?
"ff" : (document.selection ? "ie" : false));
if(br == "ie") {
txtarea.focus();
var range = document.selection.createRange();
range.moveStart('character', -txtarea.value.length);
strPos = range.text.length;
} else if(br == "ff") strPos = txtarea.selectionStart;
var front = (txtarea.value).substring(0, strPos);
var back = (txtarea.value).substring(strPos, txtarea.value.length);
txtarea.value = front + text + back;
strPos = strPos + text.length;
if(br == "ie") {
txtarea.focus();
var range = document.selection.createRange();
range.moveStart('character', -txtarea.value.length);
range.moveStart('character', strPos);
range.moveEnd('character', 0);
range.select();
} else if(br == "ff") {
txtarea.selectionStart = strPos;
txtarea.selectionEnd = strPos;
txtarea.focus();
}
txtarea.scrollTop = scrollPos;
return false;
}
这是编辑过的小提琴: