2015-12-12 36 views
0

正试图在输入命中时动态添加文本到textarea。侦听输入点击的事件只会被调用一次

$(document).ready(function() { 

    $('#content').on("keydown", function (e) { 

     if (e.keyCode == 13) { 

      $('textarea').append("Hello"); 
     } 
    }) 
}); 

这是一个运行的代码,它只会增加文本一次(页面加载后第一次),然后什么都没有。什么可能导致这个?

+0

你能分享演示吗? jsfiddle或类似的东西。 – Louy

+0

对我来说,在基于你的代码的最小样本中,它可以像我想要的那样工作多次。请给出整个上下文。 – cFreed

+0

textarea是表单元素,如果你想添加内容,请使用它的值。 '$('textarea')[0] .value + ='你好';' – Mistic

回答

1

尝试

$(document).ready(function() { 
 
    $('textarea').on("keydown", function (e) { 
 
     if (e.keyCode == 13) { 
 
      this.value+= 'Hello'; 
 
     } 
 
    }) 
 
});

的事件是textarea的本身,并加入新的内容registred到了textarea值。

0

文本添加到textarea的

如果你想在您的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; 
} 

下面是编辑小提琴:

https://jsfiddle.net/zLy2yzyd/

+0

工作演示在这里:https://jsfiddle.net/crry8dd0/ – Franco

+0

操作要添加内容到textarea,而不是修改#content - 编辑:我的错误,我读“容器”而不是“内容” – Mistic

相关问题