使用键事件和 jquery 将文本放入输入元素

Posted

技术标签:

【中文标题】使用键事件和 jquery 将文本放入输入元素【英文标题】:Putting text into an input element using key events and jquery 【发布时间】:2017-06-28 04:01:32 【问题描述】:

我想使用 jquery 中的键事件将文本放入 textarea 输入元素。我知道这可以通过.val().html() 函数简单地完成,但我想使用keyevents 放置文本是有原因的。以下是我的代码:

<!DOCTYPE html>
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<p>In this example, the text field gets focus immediately after the document window has been loaded.</p>

<textarea id="myText"> </textarea>

<script>

$(function() 
  document.getElementById("myText").focus();
   $('#myText').focus().trigger( type : 'keypress', which : 65 );
   $('#myText').trigger(jQuery.Event('keypress',  keyCode: 65 )); 

);


</script>

</body>
</html>

我用 google 搜索了一下,发现使用 jquery 触发事件有两种不同的方式。我都尝试了,但似乎都没有工作。

【问题讨论】:

$("body").bind('keydown', function(e) if (event.keyCode == 13) // enter $('#myText').val('ENTER'); ) 是这样的吗? 没有。就像我说的那样,我已经知道该怎么做了。 【参考方案1】:

看起来您的按键事件被触发了,但由于它只是一个事件,我不相信它实际上会将您的值输入到该字段中。如果您期望您拥有的其他代码在按键事件上发生某些事情,那么还有其他一些问题。

如果您使用this fiddle 进行演示,您将看到按键事件触发。

试试下面的代码,用新的按键值改变输入字段的值:

$(function() 
   $('#myText').trigger(jQuery.Event('keypress',  keyCode: 65 )).val($("#myText")
   .val() + String.fromCharCode(65));
);

【讨论】:

【参考方案2】:

问题已回答over there。由于安全原因,短键事件不会改变实际输入,但有一个名为“The $.fn.sendkeys Plugin”的插件可以帮助您解决问题。

【讨论】:

以上是关于使用键事件和 jquery 将文本放入输入元素的主要内容,如果未能解决你的问题,请参考以下文章

jQuery更改事件未更新

表单事件(jQuery)

如何在 jQuery 自定义插件中正确添加多个元素事件

如何onkeypress事件中得到一个输入文本框的文本

事件类型--键盘与文本事件

为啥 jQuery 的 .change() 事件只在鼠标右键单击时触发?