在元素/输入上执行“输入”

时间:2017-05-18 14:41:18

标签: javascript jquery html

我有一个我想要执行的输入字段。通常我会按document.getElementById("myinput").click()来做,但它是一个输入,所以我必须通过模拟输入来执行它。

我想要document.getElementById("myinput").performEnter();

之类的东西

我是从How to trigger the enter keypress找到的:

var e = $.Event( "keypress", { which: 13 } );
$('#yourInput').trigger(e);

但是有没有办法只在JavaScript中执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以创建自定义事件,并将其与JQuery的 .trigger() 方法一起使用。

var $txt = $("#txt");
var $btn = $("button");

$txt.on("keydown", function(evt){
  if(evt.keyCode === 13){
      // Create a custom event and pass to the button
      var e = $.Event("keydown");
      e.which = 13;   // ENTER
      e.keyCode = 13;
      $btn.trigger(e);  // Trigger the event for the button
  }
});

// Here is the code for a test button
$btn.on("keydown", function(evt){
  if(evt.keyCode === 13){
    console.log("You pressed ENTER in the text box and triggered the keydown event with ENTER!");
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="txt">

<button>Test Button</button>