当使用jQuery函数追加插入文本时,为什么textarea会冻结

时间:2014-02-12 20:21:08

标签: javascript jquery append

我正在尝试从下拉列表(#note_text)在文本区域(#note_template)中插入内容。用户应该能够使用键盘在文本区域之间插入多个项目。类似于从要放入消息中的表情符号集合中进行选择。

以关注方式完成后,文本区域可以在输入后接收项目。

function update1() {
    $txt = $("#note_text").val() + $("#note_template option:selected").val() ;
    $("#note_text").val($txt);
$("#note_template").val("");
}

但是,当按以下方式完成时,文本区域的内容在键入后不会更新。只有在输入之前,我才能从下拉列表中插入项目。

function noteTempalteSelected() {
    $("#note_text").append( $("#note_template option:selected").val() );
    $("#note_template").val("");
}

因此似乎使用append会导致文本区域冻结。 有人可以解释原因吗?谢谢。

1 个答案:

答案 0 :(得分:1)

好的我想我知道这里发生了什么。为了使append正常工作,该元素应该在jquery中具有innerHTML属性或html()。 Textarea就像输入一样有val()属性。所以为了正常工作你应该试试这个:

 $('#note_template').on('click', 'option:selected', function(e){
   var txtArea = $('#note_text');
   txtArea.val(txtArea.val() + $(this).val());
   $(this).val(''); 
 });

[DEMO HERE][1]