javascript - 如何将字符发送到文本区域

标签 javascript jquery jquery-events

我需要模拟用户在文本区域中输入字符,例如(jsFiddle)

<textarea rows=3 cols='30' id='txt'></textarea>

<script>

var $txt = jQuery('#txt')    
var e = jQuery.Event("keypress");
e.which = 49;    
$txt.focus().trigger(e)

</script>

它正确地将焦点设置在文本区域上,但字符“1”(ASCII 代码 49)未出现在文本框中。我做错了什么?

更新:根据答案,我发现我没有提供足够的信息,所以这里是:重点不仅仅是更改文本区域的值,而是实际模拟用户使用输入该值键盘。我正在尝试连接到某些 SharePoint 控件,当用户在某个文本区域中按下某个键时,它会执行一些奇怪的操作。仅通过 val() 添加一些值不会对我有任何好处,因为需要触发所有正确的关键事件。

所以,问题仍然存在 - 如何根据我在上面的示例中尝试的内容来模拟用户输入?

最佳答案

使用val()相反:

var $txt = jQuery('#txt');
$txt.focus().val('1');

参见DEMO .

实际上,您甚至不需要 focus() 方法来执行此操作,除非它有不同的目的。单独使用 val() 就可以了。

您还可以使用纯 JavaScript 来完成此操作:

var txt = document.getElementById("txt");
txt.value = "1";

关于javascript - 如何将字符发送到文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17218380/

相关文章:

jquery - 确定用户单击图像的位置

javascript - iOS 中的滚动位置

javascript - VueJS 动态模型绑定(bind)

javascript - 如何编写一个函数来检查井字游戏 js 中的获胜者?

jquery - 如何在Rails中使用下拉菜单和ajax过滤数据

javascript - jqplot html 无法在新窗口中正确呈现

javascript - 为什么 Footable 分页无法正确呈现?

javascript - 错误 : No resource found that matches the given name (at 'src' with value '@drawable/googleg_standard_color_18' )

javascript - jQplot formatString "%n"

javascript - 如何从 jQuery 事件处理程序中排除子元素?