如何在执行某个操作后自动触发回车键事件
How can I automatically trigger an enter key press event after a certain action is executed?
>我正在我的 Web 应用程序中编写一些单元测试,我想在单击下载到文本文件按钮后自动从我的页面触发 Enter 键按下事件。如何在jQuery或Javascript中执行此操作?
-
创建一个变量,告诉我们用户是否点击了您的按钮。
var clicked = false;
向 按钮添加事件侦听器,以便当用户单击它时,
clicked
变量将变为true
。myButton.addEventListener('click', function(){ clicked = true; });
添加
keypress
事件侦听器:document.addEventListener('keypress', function(e) { // `e` is the event });
在该事件侦听器中,检查用户之前是否单击过
if(clicked) { // ... }
如果这样做了,请检查按下的键。回车键的密钥代码是 13。
var keynum = e.keyCode||e.which; if(keynum == 13) { // ... }
如果输入了按下的键,请使用
clicked = false;
否则,一旦用户单击了您的按钮并按了 Enter 键,就无需再次单击该按钮。
之后运行您的代码。例如,这将在 2 秒后调用函数
f
。setTimeout(f, 2000);
现场演示
var clicked = false;
document.querySelector('#btn').addEventListener('click', function(){
clicked = true;
snippet.log("You clicked the button. `clicked` is now `true`");
});
document.addEventListener('keypress', function(e) {
if(clicked) {
var keynum = e.keyCode || e.which;
if(keynum == 13) {
clicked = false;
snippet.log("`clicked` is now `false`. Waiting 2 seconds...");
setTimeout(f, 2000);
}
}
});
function f() {
snippet.log("Function `f` executed successfully!");
}
#btn {
border: 3px solid red;
cursor: pointer;
}
<div id="btn">Click me, and then press enter.</div>
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --><script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
如果我答对了你的问题,这就是你要找的
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).keydown(function(event){
if(event.keyCode == 13){
alert("keypressed");
}
});
function clickevent()
{
var e = $.Event("keydown");
e.which = 13;
e.keyCode = 13;
$(document).trigger(e);
}
</script>
</head>
<body id="thebody">
<input type="button" onclick="clickevent()" value="click me first">
</body>
</html>
如果您谈论的是自动输入 Enter 键以触发 submit
事件,则可以改用以下内容:
$("#formID").submit();
<小时 />若要在按下按钮后触发此事件,请尝试以下操作:
$("#buttonID").click(function() {
$("#formID").submit(); // submits form
});
$("#txtfield").keyup(function(e) {
if(e.keyCode == 13) {
$("#submit").submit();
}
});
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- 我的输入字段听到除回车之外的每个“键下”事件.我有一个日期选择器,不确定发生了什么
- 侦听回车点击的事件只被调用一次