在按键时从动态 DOM 获取文本区域值



我正在尝试从动态添加的dom元素中获取值,灵感来自以下答案:

Jquery .keypress on a dynamic add input

我的代码:

var commentbox = $('<div class="span6"><textarea rows="1" data-replyparent="'+replyparentid+'" class="replytocomment" id="'+commentboxid+'" style="display:none;"></textarea></div>')
.keypress (function (e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 13) {
console.log("it seems to work: "+ $(this).val());

$.ajax({
url: '/add/comment',
type: 'POST',
data: {
id: id,
parent: replyparentid,
comment: comment
},
success: function(){
}
});
}
})
.insertAfter(placeholder)
;
//then insert the emojionearea after the placeholder
//$(commentbox).insertAfter(placeholder);
$('.replytocomment').emojioneArea({
pickerPosition: "bottom",
filtersPosition: "bottom",
tonesStyle: "bullet"
});

我不知道如何从键码 13 的文本区域中获取值,当"内联"使用它时,这怎么可能。

在控制台中,我只得到"它似乎有效",但没有从文本区域获得值。

如果我更新 var 注释框,在文本区域中有一些内容,如下所示:

var commentbox = $('<div class="span6"><textarea rows="1" data-replyparent="'+replyparentid+'" class="replytocomment" id="'+commentboxid+'" style="display:none;">TESTING</textarea></div>')

它适用于: $(this(.find('textarea'(.val((

所以我想这可能与听众有关? 不过看起来有点奇怪,因为当我像这样记录整个元素时:console.log($(this(.find('textarea'((; 在控制台上,它在值字段中显示正确的更新值。

此致敬意。

事件设置在包装div上,而不是textarea上,所以eventhandler里面thisdiv。使用$(this).find('textarea').val()textarea获取值。

最新更新