我有一个textarea,每次用户输入“enter”时,我想用一个值填充当前行。
我想轻推用户使用某个短语开始每一行,例如“我是”。
HTML:
<textarea class="texty"></textarea>
CSS:
.texty {
width: 400px;
height: 300px;
}
jQuery的:
$(document).ready(function() {
$(".texty").bind("keydown", function(e) {
if (e.which == 13) {
// User entered a newline.
// Start the line with the phrase "I am"
console.log("enterrrrr");
}
});
});
感谢您的帮助。
答案 0 :(得分:3)
.keyup()
:键盘上释放键时触发了事件
.keydown()
:在键盘上按下某个键时触发事件。
当你试图用&#34开始换行时,我就是&#34;你应该使用.keyup()
,这会在释放钥匙时触发。
如果要在textarea值的末尾添加文本I am
。
试试这个:
$(document).ready(function() {
$(".texty").bind("keyup", function(e) {
if (e.which == 13) {
$(this).val($(this).val()+"I am ");
}
});
});
<强> DEMO 强>
如果你想添加`我在任何地方当用户按回车键。试试这个:
$(document).ready(function() {
$(".texty").bind("keyup", function(e) {
if (e.which == 13) {
var caretPos = $('.texty')[0].selectionStart;
var textAreaTxt = $(this).val();
var txtToAdd = "I am ";
$(this).val(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring(caretPos) );
}
});
});
<强> DEMO 强>
答案 1 :(得分:2)
你快到了。您只需将文本附加到元素即可。
您可以使用.val()
:
$('.texty').val($('.texty').val() + '\nI am');
e.preventDefault(); // We already appended a new line before "I am", so prevent default enter action
答案 2 :(得分:-1)
使用keypress事件代替keydown
$('.texty').bind('keypress', function(e) {
if ((e.keyCode || e.which) == 13) {