我试过了 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');
提前致谢。吉列尔莫。
最佳答案
在live-sample.js
,我们看到了:
$('.js-auto-grow').live('keyup keydown change', function(evt) {
所以这个插件绑定(bind)了三个事件。你关心的是change
.问题是,当你说 $('#x').val('pancakes')
, change
事件未被触发。玩这个:
你会看到的。或者,来自 fine manual :
change
The change event occurs when a control loses the input focus and its value has been modified since gaining focus. This event is valid for INPUT, SELECT, and TEXTAREA. element.
当您简单地调用 $x.val('pancakes')
时, 没有发生焦点变化,所以没有 change
事件被触发。
您需要做的就是自己触发事件:
$('#txtUDSMessagesNotHandled')
.val($('#textarea').val()+'new text + '\n')
.change();
然后它应该可以正常工作。
另请注意,该插件需要 <textarea>
两者都有 row
和 column
属性,否则将不起作用。这是它的工作演示:
关于javascript - 以编程方式添加项目时,Jquery textarea autogrow 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6936011/