我需要模拟用户在文本区域中输入字符,例如(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/