簡體   English   中英

執行某個操作后,如何自動觸發輸入鍵按下事件?

[英]How can I automatically trigger an enter key press event after a certain action is executed?

我正在我的網絡應用程序中編寫一些單元測試,並且我想在點擊下載到文本文件按鈕之后自動觸發我的頁面中的Enter鍵按下事件。 我怎么能在jQuery或Javascript中做到這一點?

  1. 創建一個變量,告訴我們用戶是否單擊了您的按鈕。

     var clicked = false; 
  2. 向按鈕添加事件偵聽器,以便在用戶單擊它時, clicked變量將變為true

     myButton.addEventListener('click', function(){ clicked = true; }); 
  3. 添加一個keypress事件監聽器:

     document.addEventListener('keypress', function(e) { // `e` is the event }); 
  4. 在該事件監聽器內部,檢查用戶之前是否單擊過

     if(clicked) { // ... } 
  5. 如果他做了,檢查按下的鍵。 輸入的密鑰代碼是13。

     var keynum = e.keyCode||e.which; if(keynum == 13) { // ... } 
  6. 如果輸入了按下的鍵,請使用

     clicked = false; 

    否則,一旦用戶單擊您的按鈕並按下回車鍵,就不必再次單擊該按鈕。

  7. 之后運行您的代碼。 例如,這將在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();
 }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM