【问题标题】:How to simulate typing into a textarea using Javascript/Jquery?如何使用 Javascript/Jquery 模拟输入文本区域?
【发布时间】:2012-08-08 23:25:34
【问题描述】:

我有一个 textarea,它使用 jquery 插件在用户输入时调整自身大小。

问题是,我希望用户能够编辑他们已经输入的内容。但是由于 textarea 以 35 列、1 行开头,如果用户输入了一条长消息,则它不会完全显示,只有一行显示哪一行被截断。

有没有办法在该文本区域中模拟按键事件,以便调整文本大小并调整文本区域的大小?

无法以编程方式调用文本调整大小函数。

【问题讨论】:

  • 你使用的是哪个 jQuery Textarea Resize 插件?
  • @GeekTantra 不能告诉你,它带有我正在开发的旧代码库

标签: javascript jquery textarea


【解决方案1】:

只需触发该文本区域上的按键事件:

$(function(){
     $('textarea').trigger('keypress');
}).

如果有多个textarea,并且你想在具有id的特定textarea上触发事件,当然语法变成:

$(function(){
     $('#myTextarea').trigger('keypress');
}).

【讨论】:

  • 注意:这只会触发 jQuery 监听器,不会触发原生监听器。
【解决方案2】:

如果这是你自己的代码,那么你可以调用你的函数

您的文本区域可能已经有一些函数可以在每次击键时调用。最简单的方法是在页面加载时调用相同的函数,仅此而已。

<textarea onkeypress="someFunc();" />

在页面加载时调用这个someFunc,它应该做的事情和你按下一个键一样。

不是你写的?然后使用第三方插件

如果您使用某种 jQuery 插件(不是您自己的),那么您应该检查它是否提供此功能来初始设置文本区域的大小。如果没有,那么我建议您切换到执行此操作的其他插件。或者如果您知道如何编写自己的代码。

【讨论】:

  • 我不知道someFunc()是什么。
  • 如果您不知道 someFunc 的原因,我编辑了答案以包含一些插件信息。
  • 希望您在回答之前先阅读 OP。我已经尝试过你所说的那些东西,我的插件不允许这个功能。我的问题非常具体,如何模拟按键事件以便调用插件。
  • @ClickUpvote:希望您在发表评论之前先阅读我的回答。我提供了一个具体的答案:使用一个不同的插件,它至少为这种特性提供基本功能。 ...或按照浮士德的建议触发按键。但对我来说,这是一种可以缓解实际问题的技巧。这就是为什么我宁愿使用功能齐全的插件。或者提供我自己的。
猜你喜欢
  • 2020-12-20
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-26
  • 1970-01-01
  • 1970-01-01
  • 2016-01-08
相关资源
最近更新 更多