以编程方式添加项目时,Jquery textarea autogrow无法正常工作

时间:2011-08-04 03:57:04

标签: javascript jquery jquery-plugins

我试过了 http://www.technoreply.com/autogrow-textarea-plugin-version-2-0/https://gist.github.com/802204#file_live_sample.js

TextArea的自动增长功能,如果您使用键盘添加项目,它们的效果很好,但是如果您以编程方式添加项目(比如说每秒1个新项目),则它们不会自动增长。

如果我以编程方式添加新项目,任何人都知道如何或在哪里可以找到自动生成的autogro textarea? (例如使用$('#txtUDSMessagesNotHandled')。val($('#textarea')。val()+'new text +'\ n');

提前致谢。吉列尔莫。

1 个答案:

答案 0 :(得分:2)

live-sample.js中,我们看到了这一点:

$('.js-auto-grow').live('keyup keydown change', function(evt) {

因此插件绑定到三个事件。你关心的是change。问题是,当您说$('#x').val('pancakes')时,不会触发change事件。玩弄这个:

  

http://jsfiddle.net/ambiguous/FPB4q/1/

你会看到。或者,从fine manual

  

更改
  当控件失去输入焦点并且自获得焦点后其值已被修改时,会发生更改事件。此事件对INPUT,SELECT和TEXTAREA有效。元件。

当您只是致电$x.val('pancakes')时,不会发生焦点更改,因此不会触发change事件。

您需要做的就是自己触发事件:

$('#txtUDSMessagesNotHandled')
    .val($('#textarea').val()+'new text + '\n')
    .change();

然后它应该可以正常工作。

另请注意,该插件要求<textarea>同时具有rowcolumn属性,否则它将无效。这是一个工作的演示:

  

http://jsfiddle.net/ambiguous/Sr5gm/