2015-12-12 69 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

相關問題