如何使用jQuery模拟输入事件?

时间:2018-06-11 12:08:51

标签: javascript jquery html

这是我的代码:

$("input[type=text]").on("input", function(){
  console.log("input event fired.");
})

$("input[type=button]").on("click", function(){
  var event = new Event('input');
 $("input[type=text]").dispatchEvent(event);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="write .." />
<input type="button" value="emulate input event" />

正如您所看到的,当您在输入中写入内容时,input事件也会起作用。如何在单击按钮时模拟该事件?

4 个答案:

答案 0 :(得分:2)

jQuery使用trigger

如果要使用dispachtEvent,则需要DOM元素。

&#13;
&#13;
$("input[type=text]").on("input", function(){
  console.log("input event fired.");
})

$("input[type=button]").on("click", function() {
  // EITHER
  $("input[type=text]").trigger("input");
  // OR
  var event = new Event('input');
  $("input[type=text]")[0].dispatchEvent(event); // DOM 
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<input type="text" placeholder="write .." />
<input type="button" value="emulate input event" />
&#13;
&#13;
&#13;

答案 1 :(得分:1)

$("input[type=text]").on("input", function(){
  console.log("input event fired.");
})

$("input[type=button]").on("click", function(){
 $("input[type=text]").trigger("input");
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="write .." />
<input type="button" value="emulate input event" />

答案 2 :(得分:0)

您只需使用 .trigger() 方法按名称触发事件,如:

$("input[type=button]").on("click", function(){
    $("input[type=text]").trigger("input");
})

&#13;
&#13;
$("input[type=text]").on("input", function() {
  console.log("input event fired.");
})

$("input[type=button]").on("click", function() {
  $("input[type=text]").trigger("input");
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="write .." />
<input type="button" value="emulate input event" />
&#13;
&#13;
&#13;

答案 3 :(得分:0)

在jQuery中,您只需在元素上调用事件类型即可。

要在元素上调用click事件,请执行以下操作:

$("foo").click();

对于输入字段,最佳选择通常是

$("foo").change();