Javascript 如何在执行某个操作后自动触发enter键按下事件?

Javascript 如何在执行某个操作后自动触发enter键按下事件?,javascript,jquery,html,Javascript,Jquery,Html,我正在我的web应用程序中编写一些单元测试,我想在单击“下载到文本文件”按钮后,从我的页面自动触发一个Enter键按下事件。如何在jQuery或Javascript中实现这一点?如果您说的是自动输入Enter键以触发提交事件,您可以使用以下方法: $("#formID").submit(); 要在按下按钮后触发此事件,请尝试以下操作: $("#buttonID").click(function() { $("#formID").submit(); // submits form })

我正在我的web应用程序中编写一些单元测试,我想在单击“下载到文本文件”按钮后,从我的页面自动触发一个Enter键按下事件。如何在jQuery或Javascript中实现这一点?

如果您说的是自动输入Enter键以触发
提交事件,您可以使用以下方法:

$("#formID").submit();

要在按下按钮后触发此事件,请尝试以下操作:

$("#buttonID").click(function() {
    $("#formID").submit(); // submits form
});
  • 创建一个变量,告诉我们用户是否单击了按钮

    var clicked = false;
    
  • 将事件侦听器添加到按钮中,这样当用户单击它时,
    clicked
    变量将变为
    true

    myButton.addEventListener('click', function(){
      clicked = true;
    });
    
  • 添加一个
    按键
    事件侦听器:

    document.addEventListener('keypress', function(e) {
      // `e` is the event
    });
    
  • 在该事件侦听器中,检查用户之前是否单击过

    if(clicked) {
      // ...
    }
    
  • 如果他这样做了,检查按下的键。Enter的键代码是13

    var keynum = e.keyCode||e.which;
    if(keynum == 13) {
       // ...
    }
    
  • 如果按下的键是enter,则使用

    clicked = false;
    
    否则,一旦用户单击您的按钮并按下enter键,就没有必要再次单击该按钮

  • 然后运行代码。例如,这将在2秒钟后调用函数
    f

    setTimeout(f, 2000);
    
  • 现场演示

    var=false;
    document.querySelector(“#btn”).addEventListener('click',function(){
    单击=真;
    log(“您单击了按钮。`clicked`现在是`true`”);
    });
    文档.添加的文本列表器('keypress',函数(e){
    如果(单击){
    var keynum=e.keyCode | | e.which;
    如果(keynum==13){
    单击=假;
    log(“`clicked`现在是`false`。等待2秒…”);
    设置超时(f,2000);
    }
    }
    });
    函数f(){
    log(“函数`f`已成功执行!”);
    }
    #btn{
    边框:3倍纯红;
    光标:指针;
    }
    单击我,然后按enter键。
    
    如果我没弄错你的问题, 这就是你要找的

    <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>
    
    
    $(文档).keydown(函数(事件){
    如果(event.keyCode==13){
    警报(“按键”);
    }
    });
    函数clickevent()
    {                
    变量e=$.Event(“键控”);
    e、 其中=13;
    e、 keyCode=13;
    美元(文件)。触发器(e);
    }
    
    我想在单击按钮后触发它。顺便说一句,我正在使用超链接标记。我想在单击链接后执行此操作。:)我试试这个。你能解释一下代码里发生了什么吗。我不是java脚本专家,所以我不知道window.clicked或window.onclick。是否可以等待一定的时间?我想在2秒钟后触发它,因为我正在等待文件下载窗口。:)我很惊讶我的这个可怕的老答案得到了5张赞成票,甚至还有不必要的全局变量。更新了它,至少现在代码看起来更好了。但我仍然不相信它能回答问题。别担心,它能回答问题D您需要在鼠标点击事件后触发按下ENTER键吗?您得到的答案是相同的,这可以通过JavaScript实现吗?这更好地用于测试目的。
    <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>