Я пытаюсь получить значение от динамически добавленных элементов dom, вдохновившись этим ответом:
Jquery .keypress на динамически добавляемом вводе
Мой код:
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, как это возможно при использовании его «inline».
В консоли я получаю только «это похоже на работу», но не значение из текстовой области.
Если я обновлю поле комментария 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'));
На консоли отображается правильное обновленное значение в поле значений.
С уважением.